ios NSUserDefaults使用注意事项

NSUserDefaults适合存储轻量级的数据,他不仅可以存储基本数据类型,还可以存储NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。


[NSUserDefaults standardUserDefaults]是系统提供的单例方法。一般通过[[NSUserDefaults standardUserDefaults] setObject:forKey:]来存储数据,通过[[NSUserDefaults standardUserDefaults] objectForKey:]来获取已存数据。每次存储数据后用[[NSUserDefaults standardUserDefaults] synchronize]方法持久化数据,直接同步到文件里。NSUserDefaults存储方式跟字典类似,事实上,NSUserDefaults就是一个plist文件。


但是NSUserDefaults不能存储自定义的类对象,若把一个对象存储到NSUserDefaults会报错。聪明的人会把对象放进数组,再把数组存入NSUserDefaults,不过这样做事错误的,因为数组中包含了自定义对象。


若要在NSUserDefaults中存入自定义对象,则对象需要遵循NSCoding协议,并实现encodeWithCoder方法和initWithCoder方法。具体参考http://my.oschina.net/u/1245365/blog/294449


值得一提的是,我发现类型为NSNull的空数据也是无法存入NSUserDefaults的。若数据中有NSNull类型空数据,把它置nil即可存入NSUserDefaults。


总之,NSUserDefaults是一种操作简单的数据库。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值