<分区>
<分区>
我想在用户使用主页按钮关闭应用程序时自动保存一堆 NSUserDefaults
,而不是在按下保存按钮时(这是我目前所能找到的)。执行此操作的最佳方法是什么?
例如,我有一个 TextView 和两个可以增大和减小字体大小的按钮。不是每次用户更改文本大小时都为文本大小保存 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")))
...
最佳答案
您可以使用这两个方法,甚至 didEnterBackground
,它们在应用程序委托(delegate)中找到,只需调用即可。
[NSUserDefaults standardUserDefaults].synchronize
关于ios - 应用程序退出时保存 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31713214/
相关文章:
ios - 从外部 UIViewController 更新 SpriteKit 场景中的节点
ios - NSTemporaryDirectory 子目录
ios - UIScrollView 覆盖了我的 subview 的平移手势识别器
ios - 如何在iPad中运行Interactive PDF文件?
javascript - 用于为 Android、WinMobile、iOS 开发应用程序的统一语言
objective-c - 内存管理和performSelectorInBackground :