2016-02-21 4 views
0

Я хочу, чтобы мое приложение записывало время, когда оно было закрыто пользователем, или оно входит в фон и отображается, когда оно открывается в следующий раз. У меня есть следующий код, однако он не работает.Запишите время, когда приложение закрыто или входит в backgound.

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    _ = NSUserDefaults.standardUserDefaults().setObject(NSDate(), forKey: "lastTime") 
} 

func applicationWillResignActive(application: UIApplication) { 
     let terminateTime = NSDate() 
     let defaults = NSUserDefaults.standardUserDefaults() 
     defaults.setObject(terminateTime, forKey: "lastTime") 
     defaults.synchronize() 
} 

Спасибо.

+1

вы устанавливаете значение снова при запуске приложения, вместо того, чтобы его –

ответ

0
  • Создать переменную lastTime

    var lastTime : NSDate! 
    
  • В application:didFinishLaunchingWithOptions: значение регистра по умолчанию и читать:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
        let defaults = NSUserDefaults.standardUserDefaults() 
        let defaultValues = ["lastTime" : NSDate()] 
        defaults.registerDefaults(defaultValues) 
    
        lastTime = NSUserDefaults.standardUserDefaults().objectForKey("lastTime") as! NSDate 
        return true 
    } 
    

    Значение по умолчанию рассматривается только при первом запуске.

  • В applicationWillResignActive: сохранить его:

    func applicationWillResignActive(application: UIApplication) { 
        let terminateTime = NSDate() 
        let defaults = NSUserDefaults.standardUserDefaults() 
        defaults.setObject(terminateTime, forKey: "lastTime") 
    } 
    

    synchronize() не требуется

+0

Благодаря vadian, отлично работает. Я знаю, где проблема. – dksl176

Смежные вопросы