objective-c - NSUserDefaults。 setValue 有效,而不是 setBool

标签 objective-c nsuserdefaults

我试图在 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/

相关文章:

objective-c - 生成固定时间的 NSDate

ios - 使用 Struct 从 NSUserDefaults 保存和读取 NSArray

ios - 当我尝试访问它时,我使用 UserDefaults 设置的字符串显示为 nil

objective-c - 停止 View 上的用户交互

objective-c - OS X Cocoa - 如何检测触控板缩放手势?

ios - 在 iOS 上使用 Magical Record 进行 TOTAL 查询

iphone - 将字符串拆分为数组对象

ios - 为什么不在 NSUserDefaults 中存储密码是显而易见的?

swift - 如何在 Swift 中以字符串格式 "English"(不是 "en")显示当前语言?

swift - NSUserDefault 错误。 Int 在调用时显示为字符串