NSUserDefaults类介绍

本文介绍了如何使用NSUserDefaults类在iOS应用程序中保存和读取配置信息。详细解释了NSUserDefaults支持的数据类型及其实现原理,并提供了代码示例。

最近在做自动登录的页面,准备准备用一个全局变量来保持是否为自动登录,后来发现NSUserDefaults是个不错的选择

NSUserDefaults类非常好用,它在程序沙盒中保存一个plist文件,具体名字为:com.公司名.程序名.plist。NSUserDefaults非常好用,哪里需要NSUserDefaults数据,就在那里创建一个NSUserDefaults对象,然后进行读写操作。

  • NSUserDefaults是一个单例
  • 不是所有的东西都能往里放的。NSUserDefaults只支持:基本数据类型(floats,doubles,integers,booleans和URLs),NSString, NSNumber, NSDate, NSArray, NSDictionary.如果把一个自定义的类存到一个NSArray里,然后再存到NSUserDefaults里也是不能成功的。如果你想存储其它类型的对象,可以考虑将其转换成一个NSData的实例(当然要实现NSCoding的protocol才行,NSObject<NSCoding>)
  • 系统会将plist文件保存在该应用的/Library/Preferences/gongcheng.plist文件中
  • NSUserDefaults不是立即写入,而是根据时间戳定时把缓存中的数据写入本地。所以常常,用synchornize方法强行写入

代码:

    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];  //写入数据
    [userDefault setBool:NO forKey:@"isonline"];
    [userDefault setInteger:111 forKey:@"id"];
    [userDefault synchronize];   //强行写入本地
    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];  //读取数据
    BOOL isonline = [userDefault boolForKey:@"isonline"];
    NSInteger id = [userDefault integerForKey:@"id"];
    NSLog(@"%d %d", isonline, id);

更详细的内容可以查看这两个网页:

http://blog.youkuaiyun.com/lixuwen521/article/details/7967376

http://www.cfanz.cn/index.php?c=article&a=read&id=49538

转载于:https://www.cnblogs.com/15-10/p/3256404.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值