ユーザーのデフォルトを使用して、アプリの起動間で情報を保存しています。これは、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
してアプリケーションをシャットダウンします。そして、デバイスから再度起動します。ボタンをクリックしても色が変わりません。なぜ変化しないのですか?以前に をクリックしたときに true に設定しましたが、 もう一度kaki
です。結論としては....NSUserDefaults は起動間で情報を保存しませんでした。なんで?false
makeButtonRedIfKakiIsTrue