iOS数据持久化(2)-Preference

NSUserDefaults适合存储轻量级的本地数据,如登陆界面的数据,用户名、密码等用户偏好设置类的数据。下次启动应用的时候就可以直接从NSUserDefaults里面读取上次运行的数据。

如果使用自己建立的plist文件什么的,需要自己显式创建文件,读取文件,很麻烦,而如果用NSUserDefaults则不用管这些,就像读字典一样,直接读取数据就可以了,同时NSUserDefaults有缓存机制,可以避免频繁读写文件。

NSUserDefaults支持的数据格式有:NSNumber(BOOL、Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,NSData类型。

另外,NSUserDefaults不能存储可变(mutable)类型,只能存储不可变类型

NSUserDefaults很方便,读取也很容易

添加字段:

    //添加preference
    [[NSUserDefaults standardUserDefaults] setObject:@"value1" forKey:@"key1"];
    [[NSUserDefaults standardUserDefaults] synchronize];

修改字段(即对相同的key,设置不同的值即可):

    //添加preference
    [[NSUserDefaults standardUserDefaults] setObject:@"value2" forKey:@"key1"];
    [[NSUserDefaults standardUserDefaults] synchronize];

删除字段:

    //删除preference
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"key1 "];
    [[NSUserDefaults standardUserDefaults] synchronize];

逐个删除字段很麻烦,还可以一次性删除所有字段:

    //删除所有preference
    NSString *appDomainStr = [[NSBundle mainBundle] bundleIdentifier];
    [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomainStr];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,...
    Leeson1989阅读 1,995评论 4 1
  • 1.简介 数据持久存储是一种非易失性存储,在重启动计算机或设备后也不会丢失数据。持久化技术主要用于MVC模型中的m...
    公子无礼阅读 1,721评论 0 4
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,227评论 30 472
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,242评论 6 13
  • 最近晚上有梦 梦里你还是那张脸 可是有点模糊了 不知道这是为什么 你的样子依旧 我想看清楚 却是模糊的,看不清 然...
    胡喜阅读 194评论 1 6