iOS中的数据持久化,归档和反归档
2015-02-05 10:34
309 查看
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view.
//打印当前应用程序的沙盒路径
NSLog(@"%@",
NSHomeDirectory());
//沙盒:在一定范围内可以随意做任何事
//iOS程序的沙盒指的就是应用程序的文件操作文件夹,
在文件夹内可以读写任何内容, 但是完全不能访问其他应用程序的沙盒文件夹
//Documents:跟用户相关的一些文件,
用户设置的对这个app的偏好设置.
用户的一些文本信息. 最好不要存储空间占用比较大的文件比如视频/音频等等
//Library:给开发者使用的,
用来存储一些东西的文件夹
//Caches:缓存文件夹,
用户看过的一些图片, 音频,
视频, 都可以存储在这个文件夹中.一般的app,
清除缓存意思就是清除这个文件夹的所有内容
//Preferences:
给开发者存储一些内容, NSUserDefaults保存的信息都在这个文件夹中
// [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:<#(NSString *)#>]
//tmp:临时文件夹,
存储网络请求过程中的一些临时文件. app版本更新的时候,
会直接清空tmp文件夹.
//简单对象写入本地
//NSString, NSNumber, NSDictionary, NSArray, NSData;
//1.拼接一个存储路径
//系统提供了一个函数,
可以直接返回某一个沙盒文件夹的路径
//返回值:
找到的路径组成的数组, 如果搜索的是系统的沙盒文件夹路径,
数组中只有一个元素.
//参数1:搜索沙盒中的哪个文件夹
//参数2:搜索的范围
//参数3:返回的是相对路径还是绝对路径
NSArray *arr =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSLog(@"%@", arr);
//获取文
ccfa
件路径
//取出documents文件夹的路径
NSString *docPath = [arr
lastObject];
//拼接一个文件的路径
NSString *txtPath = [docPath
stringByAppendingString:@"/123.txt"];
//2.按照路径写入
NSString *str =
@"aa";
//参数1:要写入的路径
//参数2:是否对写入的文件进行写保护
//参数3:编码格式
//参数4:错误信息
NSError *error = nil;
[str writeToFile:txtPath
atomically:YES
encoding:NSUTF8StringEncoding
error:&error];
//数组写入本地
NSArray *array = [NSArray
arrayWithObjects:@"a",
@"b",
@"c",
nil];
NSString *arrPath = [docPath
stringByAppendingPathComponent:@"suibian.plist "];
//写入本地
[array
writeToFile:arrPath
atomically:YES];
//创建boss对象
Boss *boss = [[Boss
alloc] init];
boss.name =
@"ww";
boss.number =
@"20";
boss.sex =
@"man";
//
将复杂对象写入本地的工具
//参数1:要写入本地的对象
//参数2:要写入的路径
NSString *bossPath = [docPath
stringByAppendingPathComponent:@"boss.aa"];
//归档类
BOOL result = [NSKeyedArchiver
archiveRootObject:boss
toFile:bossPath];
NSLog(@"复杂对象写入本地:%d", result);
[boss
release];
//反归档类
//从本地读取数据产生一个新的复杂对象
Boss *bossReturn = [NSKeyedUnarchiver
unarchiveObjectWithFile:bossPath];
NSLog(@"%@", bossReturn.name);
}
[super
viewDidLoad];
// Do any additional setup after loading the view.
//打印当前应用程序的沙盒路径
NSLog(@"%@",
NSHomeDirectory());
//沙盒:在一定范围内可以随意做任何事
//iOS程序的沙盒指的就是应用程序的文件操作文件夹,
在文件夹内可以读写任何内容, 但是完全不能访问其他应用程序的沙盒文件夹
//Documents:跟用户相关的一些文件,
用户设置的对这个app的偏好设置.
用户的一些文本信息. 最好不要存储空间占用比较大的文件比如视频/音频等等
//Library:给开发者使用的,
用来存储一些东西的文件夹
//Caches:缓存文件夹,
用户看过的一些图片, 音频,
视频, 都可以存储在这个文件夹中.一般的app,
清除缓存意思就是清除这个文件夹的所有内容
//Preferences:
给开发者存储一些内容, NSUserDefaults保存的信息都在这个文件夹中
// [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:<#(NSString *)#>]
//tmp:临时文件夹,
存储网络请求过程中的一些临时文件. app版本更新的时候,
会直接清空tmp文件夹.
//简单对象写入本地
//NSString, NSNumber, NSDictionary, NSArray, NSData;
//1.拼接一个存储路径
//系统提供了一个函数,
可以直接返回某一个沙盒文件夹的路径
//返回值:
找到的路径组成的数组, 如果搜索的是系统的沙盒文件夹路径,
数组中只有一个元素.
//参数1:搜索沙盒中的哪个文件夹
//参数2:搜索的范围
//参数3:返回的是相对路径还是绝对路径
NSArray *arr =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSLog(@"%@", arr);
//获取文
ccfa
件路径
//取出documents文件夹的路径
NSString *docPath = [arr
lastObject];
//拼接一个文件的路径
NSString *txtPath = [docPath
stringByAppendingString:@"/123.txt"];
//2.按照路径写入
NSString *str =
@"aa";
//参数1:要写入的路径
//参数2:是否对写入的文件进行写保护
//参数3:编码格式
//参数4:错误信息
NSError *error = nil;
[str writeToFile:txtPath
atomically:YES
encoding:NSUTF8StringEncoding
error:&error];
//数组写入本地
NSArray *array = [NSArray
arrayWithObjects:@"a",
@"b",
@"c",
nil];
NSString *arrPath = [docPath
stringByAppendingPathComponent:@"suibian.plist "];
//写入本地
[array
writeToFile:arrPath
atomically:YES];
//创建boss对象
Boss *boss = [[Boss
alloc] init];
boss.name =
@"ww";
boss.number =
@"20";
boss.sex =
@"man";
//
将复杂对象写入本地的工具
//参数1:要写入本地的对象
//参数2:要写入的路径
NSString *bossPath = [docPath
stringByAppendingPathComponent:@"boss.aa"];
//归档类
BOOL result = [NSKeyedArchiver
archiveRootObject:boss
toFile:bossPath];
NSLog(@"复杂对象写入本地:%d", result);
[boss
release];
//反归档类
//从本地读取数据产生一个新的复杂对象
Boss *bossReturn = [NSKeyedUnarchiver
unarchiveObjectWithFile:bossPath];
NSLog(@"%@", bossReturn.name);
}
相关文章推荐
- ios数据持久化之归档(Archives)和序列化(Serializations)
- iOS 数据持久化-归档
- iOS中的数据持久化方式,基本上有以下四种:属性列表、对象归档、SQLite3和Core Data
- iOS数据持久化-归档NSKeyedArchiver
- iOS数据持久化存储 (1)-- Plist 、归档、NSUserDefaults、NSFileManager
- iOS.数据持久化.PersistenceLayer.对象归档
- iOS开发之数据持久化-归档
- iOS数据持久化之属性列表和归档
- iOS初级数据持久化 沙盒机制 归档与反归档
- iOS数据持久化之NSKeyedArchiver(归档)
- IOS数据持久化之归档NSKeyedArchiver
- 【iOS开发之Objective-C】数据持久化--文件和归档
- IOS数据持久化之归档NSKeyedArchiver
- iOS数据持久化,写入,归档和反归档
- iOS 归档持久化数据
- iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver
- iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver
- iOS开发 数据持久化-归档
- iOS-数据持久化-对象归档
- iOS数据持久化存储 (1)-- Plist 、归档、NSUserDefaults、NSFileManager