我正在尝试使用NSUserDefaults保存BOOL值和一些简单的字符串。但NSUserdefaults并没有保存任何价值。我将值保存到NSUserDefaults后也使用了同步。我用来将BOOL保存到NSUserDefaults的方式如下所示。
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"loadfirsttimewindow"];
[[NSUserDefaults standardUserDefaults] synchronize];
我用来将字符串保存到NSUserDefaults的方式如下所示。
[[NSUserDefaults standardUserDefaults] setValue:title1 forKey:@"item1"];
[[NSUserDefaults standardUserDefaults] synchronize];
因此,请告诉我存储了NSUserDefaults值的原因以及为什么它没有将任何值保存到NSUserDefaults中。
简单地说,我只想保存即使在应用程序关闭后也会保存的值。
我用于将值保存到NSUserDefaults中的代码示例,如下所示:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSLog(@"%hhd",[[NSUserDefaults standardUserDefaults] boolForKey:@"loadfirsttimewindow"]);
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"loadfirsttimewindow"])
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"loadfirsttimewindow"];
[[NSUserDefaults standardUserDefaults] synchronize];
*I have written code for the thing I have to do only when the application is launched for the first time.*
}
else
{
*I have written code for the thing I have to after the application is launched for the first time.*
}
}
答案 0 :(得分:1)
我从下面给出的链接中找到了我的解决方案:
Mac sandbox created but no NSUserDefaults plist
当您在测试/调试垃圾箱时移动容器时,cfprefsd(请参阅活动监视器)仍保留指向.plist的链接。清空垃圾箱并强制退出cfprefsd(用户和root)。