无法使用NSUserDefaults保存bool变量

use*_*935 2 boolean objective-c nsuserdefaults ios

我正在使用XCode4.2和开发和iPhone应用程序

我通常使用NSUserdefaults(主要是字符串......)保存数据

我通常写下以下两行来保存数据:

historyvar=[NSUserDefaults standardUserDefaults];
[historyvar setObject:boolVar forKey:@"bool"];
Run Code Online (Sandbox Code Playgroud)

我正在尝试保存BOOL变量但是当我这样做时出现红色错误:

Implicit converstion of'BOOL' (aka 'signed char') to 'id' is disallowed with ARC
Run Code Online (Sandbox Code Playgroud)

我收到警告(黄色错误)

不兼容的整数到指针转换将'BOOL'(又名'signed char')发送到'id'类型的参数

Bool变种有什么相当于NSUserDefaults的东西吗?谢谢

小智 10

有一个-setBool:forKey:NSUserDefaults的方法.

[[NSUserDefaults standardUserDefaults] setBool:boolValue forKey:@"bool"];
Run Code Online (Sandbox Code Playgroud)

然后你将能够得到一个像这样返回的实际 BOOL值:

BOOL saved = [[NSUserDefaults standardUserDefaults] boolForKey:@"bool"];
Run Code Online (Sandbox Code Playgroud)

这样你就不必乱用NSNumbers了.