Я хочу автоматически сохранять кучу NSUserDefaults
, когда пользователь закрывает приложение с помощью кнопки «Домой», а не при нажатии кнопки сохранения (это все, что мне удалось найти до сих пор). Как лучше всего это сделать?
Например, у меня есть текстовое представление и две кнопки, которые могут увеличивать и уменьшать размер шрифта. Вместо того, чтобы сохранять NSUSerDefaults
для размера текста каждый раз, когда пользователь изменяет размер текста, можно ли сохранить его один раз при закрытии приложения и без использования кнопки сохранения?
Я нашел this, в котором говорится о таких методах, как 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")))
...