Искам автоматично да запазя куп NSUserDefaults
, когато потребителят затвори приложението с бутона за начало, а не когато натисне бутон за запазване (което е всичко, което успях да намеря досега). Какъв би бил най-добрият начин да направите това?
Например, имам текстов изглед и два бутона, които могат да увеличават и намаляват размера на шрифта. Вместо да запазвате NSUSerDefaults
за размера на текста всеки път, когато потребителят промени размера на текста, ще бъде ли възможно да го запазите веднъж, когато приложението се затвори и без да използвате бутон за запазване?
Намерих това, което говори за методи като applicationWillTerminate:
и applicationWillResignActive:
, но не съм съвсем сигурен как да ги внедря.
Задал съм pointSize
на 18 по подразбиране, но когато увелича това:
@IBAction func largerTextButton(sender: AnyObject) {
mainTextView.font = UIFont(name: mainTextView.font.fontName, size: mainTextView.font.pointSize+1)
println(mainTextView.font.pointSize)
}
И го запазете със следното:
func applicationWillResignActive(application: UIApplication) {
userDefaults.setObject(mainTextView.font.pointSize, forKey: "textSize")
userDefaults.synchronize()
}
func applicationWillTerminate(application: UIApplication) {
userDefaults.setObject(mainTextView.font.pointSize, forKey: "textSize")
userDefaults.synchronize()
}
Записва добре, когато добавя този код към бутон, но не записва под applicationWillResignActive
и applicationWillTerminate
, така че не е проблем със самото запазване. По-скоро методите applicationWillResignActive
и applicationWillTerminate
, с които имам проблеми.
Следващият път, когато стартирам приложението, все още получавам 18, използвайки това, за да проверя:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
println(toString(userDefaults.objectForKey("textSize")))
...