首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Days countdown iOS swift

Days countdown iOS swift
EN

Stack Overflow用户
提问于 2015-06-26 22:30:37
回答 2查看 663关注 0票数 0

我的应用程序要求我从第一次发布开始倒计时。如果有人第一次启动我的应用程序,我想在午夜12点后计算第一天(当然是使用设备时钟),然后day2……并在第21天后执行操作。不管用户是关闭应用程序还是关机,这都无关紧要。当应用程序重新启动时,它应该会自动检测经过了多少天。

有谁知道如何实现这一点吗?我在想NStimer,但有点困惑。

EN

回答 2

Stack Overflow用户

发布于 2015-06-26 22:38:01

我认为你想使用UILocalNotification。这将允许您提醒用户,无论您的应用程序是否处于活动状态。

请参考文档here,如果遇到问题而找不到答案,请尝试实现并询问新的堆栈溢出问题。

票数 3
EN

Stack Overflow用户

发布于 2015-06-27 20:49:43

好的,在游乐场上闲逛了一段时间并尝试了几种东西后,我想出了一个完美的解决方案。因此,如果有人想做类似的事情,这里是我的解决方案。

代码语言:javascript
复制
    func checkElapsedDay (){

    //make sure the date register only run 1 time.
    if NSUserDefaults.standardUserDefaults().boolForKey("firstLaunch"){

        lauchDate =  NSUserDefaults.standardUserDefaults().objectForKey("start")! as! NSDate
        endDate = NSUserDefaults.standardUserDefaults().objectForKey("end")! as! NSDate
    }
    else{

        NSUserDefaults.standardUserDefaults().setBool(true, forKey: "firstLaunch")
        NSUserDefaults.standardUserDefaults().synchronize()

        endDate = lauchDate.dateByAddingTimeInterval(1814400) // 1814400 = 21 days
        NSUserDefaults.standardUserDefaults().setObject(lauchDate, forKey: "start")
        NSUserDefaults.standardUserDefaults().setObject(endDate, forKey: "end")
    }

    var today = NSDate()
    let compareResult = today.compare(endDate)
    let cal = NSCalendar.currentCalendar()
    let unit:NSCalendarUnit = .CalendarUnitDay
    let components = cal.components(unit, fromDate: today, toDate: endDate, options: nil)
    let biss = cal.compareDate(today, toDate: endDate, toUnitGranularity: nil)
    var bbb = components.day
    daysleft.image = UIImage(named: "\(bbb).png") //change the remaining day stamp

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31075822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档