我正在使用用户默认值来存储应用程序启动之间的信息。这是我在 App Delegate 中使用的代码:
var kaki: Bool!
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if kaki == nil{
print("kaki is nil")
kaki = false
NSUserDefaults.standardUserDefaults().setObject(kaki, forKey: "kaki")
NSUserDefaults.standardUserDefaults().synchronize()
print("kaki now has value")
}else{
print("kaki already has value")
kaki = NSUserDefaults.standardUserDefaults().objectForKey("kaki") as! Bool
}
func applicationWillResignActive(application: UIApplication) {
NSUserDefaults.standardUserDefaults().setObject(kaki, forKey: "kaki")
NSUserDefaults.standardUserDefaults().synchronize()
}
在我的 viewController 我有这个代码:
@IBAction func makeButtonRedIfKakiIsTrue(sender: UIButton) {
print("kaki is \(appDel.kaki)")
if appDel.kaki == true{
restoreItems.backgroundColor = UIColor.redColor()
}
appDel.kaki = true
}
我运行此代码,感谢单击按钮makeButtonRedIfKakiIsTrue
,关闭应用程序。并从设备再次启动它。我点击按钮,但颜色没有改变。为什么不改变?因为kaki
又是一次false
,虽然我在之前单击时将其设置为 true makeButtonRedIfKakiIsTrue
。我得出结论......NSUserDefaults 没有在启动之间保存信息。为什么?