- (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);
//获取文件路径
//取出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);
}