我试图在 NSUserDefaults 中存储一些设置,但应用程序似乎不会存储 setBool 值。
这个有效:
[[NSUserDefaults standardUserDefaults] setValue: @"hello"forKey: @"test"];
[[NSUserDefaults standardUserDefaults] 同步];
当我终止应用程序并重新启动它时,该值已被保存。但是,当我这样做时:
[[NSUserDefaults standardUserDefaults] setBool: YES forKey: @"test"];
[[NSUserDefaults standardUserDefaults] 同步];
关闭应用程序并重新启动后它不会保存。
我应该提交错误报告,还是我遗漏了什么?
谢谢
编辑:
我想我做错了什么。在 AppDelegate 中,我想检查是否设置了 boolForKey,但我并没有这样做:
if (![defaults boolForKey: @"test123"])
[defaults setBool: YES forKey: @"test123"];
...然而,当谈到 boolWithKey 时,“!”只需检查 bool 是 YES 还是 NO,而不是 nil。
最佳答案
您如何确定它不起作用?我试过你的代码,它对我有用。您确定在编写 bool 值后以正确的方式读取它吗?
这段代码应该可以工作:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:NO forKey:@"test"];
[defaults synchronize];
BOOL myBool = [defaults boolForKey:@"test"];
关于objective-c - NSUserDefaults。 setValue 有效,而不是 setBool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9580922/