首页 > 其他 > 详细

NSUserDefaults的简单介绍

时间:2015-10-29 00:31:02      阅读:312      评论:0      收藏:0      [点我收藏+]

        NSUserDefaults应该是所有的ios数据存储方式中,最简单,最灵活的永久性数据存储方式,也是我们用的最多的一种方式。

        NSUserDefaults是一种单例模式,所以它本身是线程安全的。

        它和plist存储方式一样,NSUserDefaults将其数据存储在应用程序内置的一个plist文件内,存储的数据类型主要有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL。

        它的存储方式基于kvc模式,也就是键值编码方式,通过value和key方式来存储数据。

  NSUserDefaults需要存储数据时,通过以下方式来设置

          NSString *passWord = @"moxue";
          NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
          [user setObject:passWord forKey:@"userPassWord"];

  当需要使用的时候,只需要简单的取出数据即可:

 NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
    NSString *passWord = [ user objectForKey:@"userPassWord"];
NSUserDefaults的同步方式:
 [userDefaults synchronize];

需要注意的是NSUserDefaults存储的数据全都是不可变的,也就是说它只能存储:NSArray,NSDictionary,却不能存储NSMutableArray, NSMutableDictionary类型数据,否则程序调试会出现问题。

注意:错误的赋值方法

这样写后,mutableArray 就变成了不可变数组了,如果你要在数组中添加或删除数据就会出现bug
    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
         NSMutableArray *mutableArray = [user objectForKey:@"墨雪"];
正确的赋值方法,也可以用alloc方式初始化
    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
         NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:[user objectForKey:@"墨雪"]];

 

NSUserDefaults的简单介绍

原文:http://www.cnblogs.com/moxuexiaotong/p/4919081.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!