码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发 -NSUserDefaults 轻量级快速存储

时间:2015-06-04 22:55:33      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:ios   数据   轻量级   数据存储方式   

IOS提供了一个轻量级的快速数据存储方式:NSUserDefaults;
程序运行的时候从用户默认的数据库中读取程序的设置,同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作,所有数据都放在内存中,读写速度很快。

NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因。

使用 NSUserDefaults 存储自定义对象的最初,我们必须认识NSUserDefaults可以存储哪一些类型的数据,下面一一列出:

NSUserDefaults支持的数据类型有:NSNumberNSIntegerfloatdouble),NSStringNSDateNSArrayNSDictionaryBOOL.
  [NSUserDefaults  standardUserDefaults]用来记录一下永久保留的数据非常方便,不需要读写文件,而是保留到一个NSDictionary字典里,由系统保存到文件里,系统会保存到该应用下的/Library/Preferences/gongcheng.plist文件中。需要注意的是如果程序意外退出,NSUserDefaultsstandardUserDefaults数据不会被系统写入到该文件,不过可以使用[[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步到文件里,来避免数据的丢失。

1。 获取 NSUserDefaults

   //这是一个单例,获取非常方便,随时可以调用:
    [NSUserDefaults standardUserDefaults];

2。 写入数据

    [[NSUserDefaults standardUserDefaults] setInteger:10 forKey:@"test"];
   [[NSUserDefaults standardUserDefaults] setFloat:10.0 forKey:@"test"];
   //..... NSUserDefaults 支持多种数据类型,用 key来标示

3。 读出数据

     int a = [[NSUserDefaults standardUserDefaults] integerForKey:@"test"];
     float b = [[NSUserDefaults standardUserDefaults] floatForKey:@"test"];
 。。。当然也支持其他各种类型

4。保存数据,实现持久化存储

    [[NSUserDefaults standardUserDefaults] synchronize];

5。 判断数据是否存在

     if([[NSUserDefaults standardUserDefaults] objectForKey:@""test"]==nil){
        //代码处理
    }else{
    //代码处理
    }

而像SQLite这样的数据库方式,适合大量数据的存储。

iOS开发 -NSUserDefaults 轻量级快速存储

标签:ios   数据   轻量级   数据存储方式   

原文地址:http://blog.csdn.net/wangzi11322/article/details/46365207

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!