Я создаю приложение секундомера, и мне нужно сохранить дату начала, прежде чем пользователь закроет приложение, и ему нужно будет восстановить его, когда пользователь снова откроет приложение.
Так, например, если пользователь запускает секундомер, а затем закрывает приложение, а затем через некоторое время открывает приложение снова, приложение должно добавить время между открытием и закрытием до времени выполнения, если секундомер был запущен.
Я создал две функции в моем контроллере view, которые обрабатывают это. Здесь код:
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: