无法使用 NSUserDefaults 保存布尔变量
Posted
技术标签:
【中文标题】无法使用 NSUserDefaults 保存布尔变量【英文标题】:unable to save a bool variable using NSUserDefaults 【发布时间】:2012-02-20 15:28:36 【问题描述】:我正在使用 XCode4.2 和开发 iPhone 应用程序
我通常使用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 变量,是否有任何等效于 NSUserDefaults 的东西? 谢谢
【问题讨论】:
【参考方案1】:NSUserDefaults 有一个 -setBool:forKey: 方法。
[[NSUserDefaults standardUserDefaults] setBool:boolValue forKey:@"bool"];
然后您将能够得到一个 实际 BOOL 值,如下所示:
BOOL saved = [[NSUserDefaults standardUserDefaults] boolForKey:@"bool"];
这样你就不必弄乱 NSNumbers 了。
【讨论】:
以上是关于无法使用 NSUserDefaults 保存布尔变量的主要内容,如果未能解决你的问题,请参考以下文章
无法保存到 iOS 7.0.2 上的 NSUserDefaults
如何将 MPMediaItemCollection 保存到 NSUSerDefaults?
如何使用 NSUserDefaults 在 iOS 中保存非属性值?