NSUserDefault
2016-04-17 13:28
211 查看
```
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. /* NSUserdefault类提供了一个默认的系统编程接口,用于存储简单的数据,以便下次启动的时候能够恢复上次的设置而且可以在程序的任何地方读取数据; 具有缓存机制 不必每次读取的时候都打开应用程序的默认设置数据库 不支持直接存储对象 可以保存简单的数据 每一个数据的保存都对应着一对value/key 如果对相同的key进行了操作相当于是进行了一次覆盖 存储的对象都必须是不可变的 如果需要对可变的进行操作需要先获取不可变的在给可变的赋值 如果使用了可变的对象元素会导致crash和bug 当需要对自定义类型的对象数据进行操作 需要将对象变成NSData然后进行本地存储的操作 取值同理 如果需要修改数据可以通过key的唯一性进行覆盖操作 */ #warning 注意保持key的唯一性 //存储一个NSString对象 NSString *str = @"qxw"; NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; [user setObject:str forKey:@"userStr"]; //取值 NSString *userStr = [user objectForKey:@"userStr"]; NSLog(@"%@",userStr); //存储不可变的数据 NSArray *array = [NSArray arrayWithObject:userStr]; [user setObject:array forKey:@"记住一定是不可变的"]; NSMutableArray *dataArray = [NSMutableArray array]; dataArray = [NSMutableArray arrayWithArray:[user objectForKey:@"记住一定是不可变的"]]; NSLog(@"%ld",dataArray.count); //存储自定义的对象 Student *stu = [[Student alloc] init]; stu.name = @"qxw"; stu.sex = @"男"; stu.number = @"123456"; //将对象转化为nsdata对象 NSData *data = [NSKeyedArchiver archivedDataWithRootObject:stu]; [user setObject:data forKey:@"oneStu"]; //取出数据 NSData *datas = [user objectForKey:@"oneStu"]; Student *stu1 = [NSKeyedUnarchiver unarchiveObjectWithData:datas]; NSLog(@"%@",stu1.name); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end //自定义的对象 .H文件 #import <Foundation/Foundation.h> @interface Student : NSObject<NSCoding> @property (nonatomic, strong)NSString * name; @property (nonatomic, strong)NSString * phone; @property (nonatomic, strong)NSString * sex; @end //.M文件 #import <Foundation/Foundation.h> @interface Student : NSObject<NSCoding> @property (nonatomic, strong)NSString * name; @property (nonatomic, strong)NSString * phone; @property (nonatomic, strong)NSString * sex; @end
相关文章推荐
- Android笔记之属性动画
- 20145208 《Java程序设计》第7周学习总结
- 机器人学 —— 飞行机器人(Introduction)
- HDU-1019
- 二维数组
- HDU-1021
- 调用系统图库获取图片
- Android Studio 编译失败 Could not read entry ':app:processDebugManifest' from cache taskArtifacts.bin
- 就业规划第四次作业
- 方法与数组
- 学习进度条
- hdu1074 Doing Homework(状压dp)
- HDU-1008
- iOS解决json串中的NSNull类型
- Http请求
- HDU-1013
- 持续更新关于几种排序方式的的问题......
- android自定义view-打造圆形ImageView(四)终结篇
- 选择结构与循环结构
- TCP 三次握手、四次挥手