Я создаю приложение для секундомера, и мне нужно сохранить дату начала до того, как пользователь закроет приложение, и мне нужно получить ее, когда пользователь снова откроет приложение.
Так, например, если пользователь запускает секундомер, а затем закрывает приложение, а затем через некоторое время снова открывает приложение, приложение должно добавить время между открытием и закрытием ко времени работы, если секундомер был запущен.
Я создал две функции в своем контроллере просмотра, которые справляются с этим. Вот код:
override func viewWillAppear(animated: Bool)
{
let startTimedefault:NSUserDefaults = NSUserDefaults.standardUserDefaults()
let startTimesaved:NSDate = startTimedefault.objectForKey("start time") // This line is buggy
if(launchBool == true)
{
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "fireStopWatch", userInfo: nil, repeats: true)
startTime = startTimesaved
}
if(launchBool == false)
{
timer.invalidate()
}
}
override func viewWillDisappear(animated: Bool)
{
NSUserDefaults.standardUserDefaults().setObject(launchBool, forKey: "Start/Stop")
NSUserDefaults.standardUserDefaults().setObject(startTime, forKey: "start time")
NSUserDefaults.standardUserDefaults().setObject(elapsedTime, forKey: "elapsed time")
}
Я прочитал пару сообщений здесь, в StackOverflow:
Каков оптимальный способ хранения NSDate в NSUserDefaults? < / а>