这是一种简单的本地储存的方式,可以将简单的信息写入到本地.实现本地储存
首先我们先来了解下iOS的沙盒的情况
找到Documents:在做iTunes同步的时候,会把这个文件夹进行同步;这个文件夹主要存放一些比较重要的存档信息(比如游戏的存档),并且document中的内容不能过大,否则在应用审核的时候会被拒绝
NSString *documenrsParh = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSLog(@"%@", documenrsParh);
//library:存放资源文件(视频,图片等)
NSString *libraryParh = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
NSLog(@"%@", libraryParh);
//Caches:Library的子文件夹,存放缓存数据(例如图片的缓存)
NSString *cachesParh = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
//tmp:存放临时文件(例如zip压缩包,解压过后,删掉)
NSLog(@"%@", NSTemporaryDirectory());
这里只是简单的说一下,不知道这样的储存会不会对上架带来困扰
1,文件读写(支持NSString, NSArray NSDictionary, NSData)
//写入的api都是以"writeToFile"开头
//读取的api都包含"contentOfFile"
//注:NSArray和NSDictionary中存的数据也必须是这4种类型
//创建文件内容
NSString *string = [NSString stringWithFormat:@"新年快乐!"];
//创建文件路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath = [docPath stringByAppendingPathComponent:@"test.txt"];
//写入到指定的文件路径
//注:如果发现没有这个文件夹,就自动创建
//每次修改文件内容,都是一个覆盖过程
NSError *errror = nil;
BOOL result = [string writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&errror];
if (result) {
NSLog(@"写入成功");
} else {
NSLog(@"%@", errror);
}
读取文件的操作
//创建路径
NSString *string1 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *flPath = [string1 stringByAppendingPathComponent:@"test.txt"];
NSError *error1 = nil;
NSString *string2 = [NSString stringWithContentsOfFile:flPath encoding:NSUTF8StringEncoding error:&error1];
if (error1) {
NSLog(@"%@", error1);
} else {
NSLog(@"%@", string2);
}
当然这里如果是 数组,字典 在写入和读取的时候 会有一点不同,但是不大