Iphone NSUserDefaults即使在使用同步时也不会持久
我的Iphone NSUserDefaults即使在使用同步时也不会持久,iphone,xcode,nsuserdefaults,synchronize,Iphone,Xcode,Nsuserdefaults,Synchronize,我的NSUserDefaults在应用程序运行或最小化时工作正常。但是如果我关闭应用程序并重新启动它,则返回的对象是null。代码: colorDefault = [NSUserDefaults standardUserDefaults]; [colorDefault setObject:myColor2 forKey:@"fieldKey"]; NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:myCo
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];
我在我的ApplicationIdentinterBackground
中调用[[NSUserDefaults standardUserDefaults]synchronize]
,并在应用程序中终止,但没有成功。我记录了这两种方法,当我关闭应用程序时,我注意到只调用了DidEnterBackground
谢谢你的帮助 Mmmm。。。我认为你的代码应该更简单
这就是我编写NSUserDefault并检索它所做的:
// write
[[NSUserDefaults standardUserDefaults] setObject:@"aString" forKey:@"aKey"];
// read
[[NSUserDefaults standardUserDefaults] objectForKey:@"aKey"];
setObject并不是唯一的选项:setBool、setFloat、setInteger和另一边的BoolWorkey、floatForKey、IntegerWorkey也不错
不要忘记设置设置。在项目中捆绑和aKey
:
<dict>
<key>Key</key>
<string>aKey</string>
<key>DefaultValue</key>
<false/>
</dict>
钥匙
阿凯
默认值
希望这有助于…显示返回nil对象的代码,包括从何处调用该对象。另外,上面的代码在你的应用程序中的什么位置?您认为registerDefaults:应该做什么?myColor2变量类型是什么?关于registerDefaults如何工作的详细信息,你读过这里的参考资料了吗?不知怎么的,我没有找到这篇老文章,但我有一个相同的场景:除了我在viewDidLoad中调用我的默认值,ViewWillDisplay(viewDidLoad在应用程序每次启动时都被调用,所以它显然也需要在那里)对不起,伙计们。您提到的所有内容都是有效的,但结果是:String==@“Blue”//而不是String isEqualToString:@“Blue”
奇怪的是,在您关闭应用程序之前,它工作得很好。但事后,它改变了它的想法。再次感谢!啊。。。我懂了。在比较字符串时始终使用isEqualToString:看起来==运算符比较的是对象地址而不是它们的内容!!!(不客气^ ^)我建议您阅读文档,registerDefaults:用于与setValue:forKey:不同的用途: