【发布时间】:2016-10-20 14:07:55
【问题描述】:
我有一个全局设置变量 (SettingsVariable.settingOne),在应用程序运行时由用户更改。我想让用户永久更改,但此时每次重新加载应用程序时,它都会恢复为原始值,例如用户将值更改为 false,但是当重新运行应用程序时,变量值会更改回原始值。
当值改变时,会调用以下代码(swift 2):
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "settingOne")
当应用关闭时:
func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
NSUserDefaults.standardUserDefaults().setBool(SettingsVariables.settingOne, forKey: "settingOne")
}
然后一旦再次打开应用程序:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
NSUserDefaults.standardUserDefaults().boolForKey("settingOne")
return true
}
但是 settingOne 的值不断恢复到最初在应用程序中设置的默认值 'true'。
SettingsVariables.settingOne 包含在结构中:
import UIKit
struct SettingsVariables {
static var settingOne = true
}
【问题讨论】:
标签: ios swift nsuserdefaults