一:plist存储,存储在Caches文件夹下
存储的路径: 沙盒路径/Library/Caches文件/文件名
// 1.plist存储,生成一个plist文件.
// 2.plist不是数组就是字典,plist存储就是用来存储字典或者数组.
// 注意:Plist不能存储自定义对象
// 创建数组
@[@"123",@1,@"abc"];
// 存储数据,存储应用沙盒(应用的文件夹中)
// 获取沙盒路径
// NSLog(@"%@",NSHomeDirectory());
// 直接应用沙盒中Caches文件路径
// directory:获取哪个文件夹
// domainMask:在哪个范围内搜索,NSUserDomainMask:表示在用户的手机上查找
// expandTilde:是否展开全路径 YES:表示展开全路径 NO:不会展开全路径,会把应用沙盒的路径用波浪号(~)代替
// 获取到Caches文件夹路径
YES)[0];
// 拼接文件名
@"/arr.plist"];
// File:文件的全路径
YES];
二:偏好设置存储在Preferences文件夹下:
存储的路径: 沙盒路径/Library/Preferences文件/文件名
// 偏好设置存储
// 好处:1>
可以存储基本数据类型
快速进行键值对存储
// 获取偏好设置存储对象单例
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
// 存储对象
[userDefaults setObject:@5 forKey:@"age"];
// 存储基本数据类型
[userDefaults setInteger:10 forKey:@"num"];
三:归档
// 归档:存储自定义对象
// 存储路径:沙盒/temp文件名/文件名
创建person
Person *p = [[Person alloc] init];
p.age = 18;
p.name = @"a";
// 获取tem文件夹路径
NSString *tempPath = NSTemporaryDirectory();
// 拼接文件名
NSString *filePath = [tempPath stringByAppendingPathComponent:@"person.data"];
专门用来做自定义对象归档
[NSKeyedArchiver archiveRootObject:p toFile:filePath];
// p encodeWithCoder:
解档
// 获取tem文件夹路径
NSString *tempPath = NSTemporaryDirectory();
// 拼接文件名
NSString *filePath = [tempPath stringByAppendingPathComponent:@"person.data"];
解档
Person *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
NScode协议,并实现下面两个方法
// 什么时候调用:当一个对象要归档的时候就会调用这个方法归档
// 作用:告诉苹果当前对象中哪些属性需要归档
- (void)encodeWithCoder:(NSCoder *)aCoder
{
@"name"];
@"age"];
}
// 什么时候调用:当一个对象要解档的时候就会调用这个方法解档
// 作用:告诉苹果当前对象中哪些属性需要解档
// initWithCoder什么时候调用:只要解析一个文件的时候就会调用
NScoding协议:加载xib或者Story Board的控件的时候就会调用initWithCoder方法
- (id)initWithCoder:(NSCoder *)aDecoder
{
// 当父类遵守了NScoding协议的时候需要调用父类的[super initWithCoder]方法
#warning [super initWithCoder]
if (self = [super
// 解档
// 注意一定要记得给成员属性赋值
@"name"];
@"age"];
}
return self;
}
// 什么时候调用:当一个对象要归档的时候就会调用这个方法归档
// 作用:告诉苹果当前对象中哪些属性需要归档
- (void)encodeWithCoder:(NSCoder *)aCoder
{
@"name"];
@"age"];
}
// 什么时候调用:当一个对象要解档的时候就会调用这个方法解档
// 作用:告诉苹果当前对象中哪些属性需要解档
// initWithCoder什么时候调用:只要解析一个文件的时候就会调用
- (id)initWithCoder:(NSCoder *)aDecoder
{
#warning [super initWithCoder]
if (self = [super
// 解档
// 注意一定要记得给成员属性赋值
@"name"];
@"age"];
}
return self;
}
容器沙盒 沙盒放置
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章