0

ユーザーのデフォルトを使用して、アプリの起動間で情報を保存しています。これは、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 は起動間で情報を保存しませんでした。なんで?falsemakeButtonRedIfKakiIsTrue

4

1 に答える 1

0

メソッドkaki = NSUserDefaults.standardUserDefaults().objectForKey("kaki") as? Boolの先頭に追加するのを忘れましたdidFinishLauncing

于 2015-09-14T13:29:45.830 に答える