我有一个应用程序,它有一个简单的计时器,可以使用SpriteKit在动画视图控制器上运行。我希望计时器继续,所以我使用了通知中心并在AppDelegate中发布了通知,如下所示:
func applicationWillResignActive(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("stopTimerNotification", object: nil)
}
func applicationDidEnterBackground(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("stopTimerNotification", object: nil)
}
func applicationWillEnterForeground(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("startTimerNotification", object: nil)
}
func applicationDidBecomeActive(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("startTimerNotification", object: nil)
}
我的定时器在连接到Xcode时在设备上运行正常,并且在"睡眠时间"应用程序正在设备上运行(并未连接到Xcode)。我已经搜索过但无法理解这一个。有什么建议吗?
调用两个NSNotifications时执行的代码是:
func stopTimerInBackground(note: NSNotification) {
if(isRunningStopwatch == true) {
stopPressed()
stopTimerInBackgroundDate = NSDate()
}
}
func startTimerInBackground(note: NSNotification) {
var restartTimerInBackgroundDate:NSDate! = NSDate()
if (isStopwatch == true) {
previousElapsedTime = restartTimerInBackgroundDate.timeIntervalSinceDate(stopTimerInBackgroundDate)
previousElapsedTime = 0
startPressed()
}
}
我只是想知道它是否是一个必须改变的plist值?