NSUserDefaultsを使用してアプリケーションにキーと値のペアを格納しています。以下のサンプルコードです:NSUserDefaultsは信頼できませんか?
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let ud = NSUserDefaults.standardUserDefaults()
if !(ud.boolForKey("launched_before")) {
print("first_launch")
ud.setBool(true, forKey: "launched_before")
} else {
print("not_first_launch")
}
}
予想通り、私は、アプリケーションを初めて起動したときには、それが「first_launch」を印刷し、あまりにも予想通り、私は、アプリケーションを起動二回目は、それが「not_first_launch」を出力します。しかし、XcodeでStopボタンとRunボタンを数回(4〜20回)押してアプリケーションを再起動すると、boolForKey("launched_before")
はfalseを返します。
私のデバイス(iPhone 6、iOS 9.3.1)とXcode 7.3でテストしています。
誰でも私を助けることができますか?
これが役に立ちます! –
しかし、それが期待どおりに動作するのはどのように2度目になりますか。つまり、ブール値の設定は成功です。 – TangZijian
これはどのようにNSUserDefaultを理解するのに役立ちます:http://www.accella.net/knowledgebase/nsuserdefaults-some-pretty-good-practices/ –