读取 NSUserDefault bool

发布于 2024-12-10 15:59:14 字数 525 浏览 0 评论 0原文

我在尝试将 bool 注册为 NSUserDefault 时遇到问题。然后我希望稍后能够读取这个布尔值。问题是,当我读取该值时,它没有将其视为 YES

这是我用来注册该值的代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableDictionary *appDefaults = [NSMutableDictionary dictionary];
[appDefaults setValue:@"YES"    forKey:kShowHelp];

[defaults registerDefaults:appDefaults];
[defaults synchronize];

然后我使用以下命令读取布尔值:

bool showHelp = [[NSUserDefaults standardUserDefaults] boolForKey:kShowHelp];

I have a problem where I'm trying to register a bool as an NSUserDefault. I then want to be able to read this bool value later on. The issue is that when I read the value its not picking it up as a YES.

Here is the code I use to register the value:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSMutableDictionary *appDefaults = [NSMutableDictionary dictionary];
[appDefaults setValue:@"YES"    forKey:kShowHelp];

[defaults registerDefaults:appDefaults];
[defaults synchronize];

I then read the bool using the following:

bool showHelp = [[NSUserDefaults standardUserDefaults] boolForKey:kShowHelp];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

星軌x 2024-12-17 15:59:14

不要使用 setValue:forKey: 使用 setObject:forKey:

[appDefaults setObject:[NSNumber numberWithBool:YES] forKey:kShowHelp];

Don't use setValue:forKey: use setObject:forKey:

[appDefaults setObject:[NSNumber numberWithBool:YES] forKey:kShowHelp];
诗笺 2024-12-17 15:59:14

为什么不使用setBool:forKey

[ appDefaults setBool: YES forKey: kShowHelp ];

编辑

好的,既然你有一个字典,你应该使用 NSNumber 来表示布尔值。

示例

NSUserDefaults * defaults = [ NSUserDefaults standardUserDefaults ];

NSMutableDictionary * appDefaults = [ NSMutableDictionary dictionary ];
[ appDefaults setObject: [ NSNumber numberWithBool: YES ] forKey: kShowHelp ];

[ defaults registerDefaults: appDefaults ];
[ defaults synchronize ];

编辑2

您知道您还可以在应用程序包中创建一个plist,并将其值注册为默认值吗?恕我直言,更简单。

Why aren't you using setBool:forKey?

[ appDefaults setBool: YES forKey: kShowHelp ];

EDIT

Ok, since you have a dictionary, you should use a NSNumber to represent a boolean values.

Example

NSUserDefaults * defaults = [ NSUserDefaults standardUserDefaults ];

NSMutableDictionary * appDefaults = [ NSMutableDictionary dictionary ];
[ appDefaults setObject: [ NSNumber numberWithBool: YES ] forKey: kShowHelp ];

[ defaults registerDefaults: appDefaults ];
[ defaults synchronize ];

EDIT 2

Do you know you can also create a plist in your application's bundle, and register its values as defaults? Much simpler IMHO.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文