无法使用NSUserDefaults保存bool变量

时间:2012-01-27 16:32:30

标签: objective-c ios nsuserdefaults boolean

我正在使用XCode4.2和开发和iPhone App

我通常使用NSUserdefaults(主要是字符串......)

来保存数据

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

historyvar=[NSUserDefaults standardUserDefaults];
[historyvar setObject:boolVar forKey:@"bool"];

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

Implicit converstion of'BOOL' (aka 'signed char') to 'id' is disallowed with ARC

我收到警告(黄色错误)

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

是否有类似于Bool varibles的NSUserDefaults? 感谢

1 个答案:

答案 0 :(得分:10)

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

[[NSUserDefaults standardUserDefaults] setBool:boolValue forKey:@"bool"];

然后你就可以得到一个实际的 BOOL值,如下所示:

BOOL saved = [[NSUserDefaults standardUserDefaults] boolForKey:@"bool"];

这样你就不必乱用NSNumbers了。