我的NSUserDefaults
在应用运行或最小化时正常工作。但是,如果我终止应用程序并重新启动它,则返回的对象为null
。代码:
colorDefault = [NSUserDefaults standardUserDefaults];
[colorDefault setObject:myColor2 forKey:@"fieldKey"];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:myColor2, @"fieldKey", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
//[[NSUserDefaults standardUserDefaults] synchronize];
[colorDefault synchronize];
我在[[NSUserDefaults standardUserDefaults] synchronize]
和applicationDidEnterBackground
中致电applicationWillTerminate
,但没有成功。我 NSLogged 这两种方法,当我杀死应用程序时,我注意到只有DidEnterBackground
被调用..
感谢您的帮助!
答案 0 :(得分:0)
嗯......我认为你的代码应该更简单。
这就是我编写NSUserDefault并检索它的方法:
// write
[[NSUserDefaults standardUserDefaults] setObject:@"aString" forKey:@"aKey"];
// read
[[NSUserDefaults standardUserDefaults] objectForKey:@"aKey"];
setObject不是唯一的选项:setBool,setFloat,setInteger,另一方面boolForKey,floatForKey,integerForKey也不错。
不要忘记在项目中设置Settings.bundle
和aKey
:
<dict>
<key>Key</key>
<string>aKey</string>
<key>DefaultValue</key>
<false/>
</dict>
希望这会有所帮助......