2015-12-11 54 views
0

我用斯威夫特是新的iOS开发2.1,我想知道是否有可能每天触发一个事件/每月/每年的更新NSUserDefaults的价值每月

这可能吗?我了解到,每当应用程序从内存中释放时,都无法对其执行任何操作。

我也看到了,我可以存储用户最后一次运行该应用程序的价值NSUserDefaults的,当他再次运行

比较它的时候,我碰到这个link运行在来到在一个特定的时间码,不知道这是否与日期也工作与否

提前感谢!

回答

2

这是不可能的“火”,只要你请,如果您的应用程序没有运行的事件,但你可以每次它的推出时间肯定检查您的应用程序的情况,并检查有足够的时间是否已经过去做的工作,你想。在应用程序委托的didFinishLaunchingWithOptions()方法,看在NSUserDefaults看到上次保存日期,而如果超过一个月过去了,把你想要的任何行动。

注意:如果您不知道,您可以将NSDate对象直接读入NSUserDefaults,无需转换。一些示例代码可以帮助您开始:

let defaults = NSUserDefaults.standardUserDefaults() 

if let previousDate = defaults.objectForKey("LastSavedDate") as? NSDate { 
    // compare the last-saved date to now; how much time has passed? 
    let timePassed = previousDate.timeIntervalSinceNow; 
} else { 
    // no previously saved date; presumably take your action immediately? 
} 

defaults.setObject(NSDate(), forKey: "LastSavedDate") 
+0

感谢TwoStraws的帮助和信息! +1 –