私のNSUserDefaults
は、アプリケーションの実行中または最小化時に正常に動作します。しかし、私がアプリを終了して再起動した場合、返されるオブジェクトはnull
です。コード:NSUserDefaultsは同期を使用しても保持されません
colorDefault = [NSUserDefaults standardUserDefaults];
[colorDefault setObject:myColor2 forKey:@"fieldKey"];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:myColor2, @"fieldKey", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
//[[NSUserDefaults standardUserDefaults] synchronize];
[colorDefault synchronize];
ノー成功を収めて、私のapplicationDidEnterBackground
にし、applicationWillTerminate
で[[NSUserDefaults standardUserDefaults] synchronize]
を呼び出します。私はNSLoggedこれらの方法と私はアプリを殺すと、私はDidEnterBackground
が呼び出されていることに気付きました..
ありがとうございました!
はnilのオブジェクトは、それが呼び出される場合を含む、返されるコードを表示します。また、あなたのアプリのどこに上記のコードがありますか? registerDefaults:どうしたらいいのですか? – jrturton
myColor2変数タイプとは何ですか? registerDefaultsの動作の詳細については、https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.htmlを参照してください。 –
どういうわけか、私はこの古いポストを見つけられませんでしたが、私は同じシナリオがあります:[here](http://stackoverflow.com/questions/6349648/nsuserdefaults-wont-save-permanantly) viewDidLoadとviewWillAppearのデフォルト(viewDidLoadはアプリが起動するたびに呼び出されるので、明示的にそこにいる必要があります) – Gravemind