本文主要是介绍沙盒路径下存储和读取数据 缓存文件、偏好设置文件、plist文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、plist存储
// 获取应用文件夹路径
NSString *homePath = NSHomeDirectory();
//获取document文件夹的路径
//函数的作用:在某个范围内搜索一个文件夹的路径
//directory:获取哪个文件夹
//NSUserDomainMask:在用户的范围内查找
//expandTilde:YES:展开 。No,不展开,~会把沙盒路径替换
NSString *docPath = NSSeachPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES)[0];//文件所在的文件夹路径
//拼接上文件
NSString *filePath = [docPath stringByAppendingPathComponent:@“arr.plist”];
//创建数组,将数组写入文件
NSArray *arr = @[@“12”,@“34”];
[arr writeToFile:filePath atomically:YES];
//从文件中读取出数组
NSArray *arr = [NSArray arrayWithContentsOfFile:filePAth];
2、偏好设置存储
// 偏好设置: [NSUserDefaults standardUserDefaults] 专门用来偏好设置存储
// 偏好设置:快速进行一些键值对的存储,底层封装方式:就是包装了一个字典
// 偏好设置:不需要关心文件名
// 偏好设置:快速进行一些键值对的存储,底层封装方式:就是包装了一个字典
// 偏好设置:不需要关心文件名
// 偏好设置的注意点: ios8 之前,通常我们需要做一个操作,同步:把缓存的数据同步到硬盘
//写入到偏好设置
[[NSUserDefaults standardUserDefaults] setObject:@“xiaoming” forKey:@“name”];
//ios8之前一定要做同步:把缓存的数据及时同步到硬盘
[[NSUserDefaults standardUserDefaults]synchronize];
//读取偏好设置
NSString *name = [[NSUserDefaults standardUsersDefaults] objectForKey:@“name”];
3、自定义对象归档
遵守NSCoding协议
归档的时候encodeWithCoder方法重写
解档的时候initWithCoder方法重写
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_name forKey :@“name”];
[aCoder encodeObject:_age forKey:@“age”];
}
解档文件
-(id)initWithCoder:(NSCoder *)aDecoder
{
//如果父类没有遵守<NSCoding>协议,就不需要调用InitWithCoder
if(self = [super init])
{
_name = [aDecoder decodeObjectForKey:@“name”];
_age = [aDecoder decodeObjectForKey:@“age”];
}
return self;
}
//归档和解档的使用
p.name = @“xiom”;
p.age = 10;
//获取文件全路径
NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)[0];
//拼接文件名
NSString *filePath = [cachePath stringByAppendingPathComponent:@“person.data”];
//一定对象如果需要归档,必须要遵守<NSCoding>实现encodeWithCoder
//归档
[NSKeyedArchive archiveRootObject:p toFile:filePath];
//解档
Person *p = [NSKeyedUnarchiver unachiveObjectWithFile:filePath];
这篇关于沙盒路径下存储和读取数据 缓存文件、偏好设置文件、plist文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!