标签:
一.什么是沙盒机制
获取沙盒路径的方法:
1 //第一种 获取沙盒路径的方法 2 NSString *pathStr = NSUserName(); 3 NSString *homePathStr = NSHomeDirectoryForUser(pathStr); 4 NSLog(@"%@",homePathStr); 5 //第二种 获取沙盒路径的方法 6 NSString *homePathStr1 = NSHomeDirectory(); 7 NSLog(@"%@",homePathStr1);
获取document文件夹路径的方法
1 //获取document文件夹路径的方法 *********(经常用) 2 NSString *documentStr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; 3 NSLog(@"%@",documentStr);
//数据本地化
//1.NSUserDefaults
//版本号,是否首次登陆,登陆后的用户名和用户信息
//2.直接写入本地(可以写入简单对象)
//3.归解档(主要作用于自定义对象model)
//4.SQLite -->基于c语言的数据库
//5.CoreData (主推方式)
//把程序有关的数据和文件存储的地方就是沙盒 一个应用程序只有一个沙盒文件夹
//应用程序是不能跨沙盒读取文件的 (都有一个Bundle ID)
//热更新 在线更新安装
//x86_64 -l -f 错误原因分析:
//1.路径
//2.命名冲突
//library为半永久的,不会被备份
二.简单对象写入文件
简单写入文件的四步
1>.写的东西 数组,字典,data date
2>.写到哪里
3>.写进去
4>.写完拿出来使用
NSString类型简单写入文件的方法
1 /* 2 简单写入文件的四步 3 1?? 写的东西 数组,字典,data date 4 2?? 写到哪里 5 3?? 写进去 6 4?? 写完拿出来使用 7 */ 8 //第一种简单对象写入本地的方法 9 //1?? 写的东西 数组,字典,data date 10 NSString *str = @"张三"; 11 //创建写入的文件 后面直接拼接文件 如果没有拼接会自动创建 12 //2?? 写到哪里 13 NSString *documentStr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; 14 NSString *path = [documentStr stringByAppendingString:@"/张三.avi"]; 15 // 3?? 写入文件 16 [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; 17 NSLog(@"%@",path); 18 //4?? 写完拿出来使用 19 NSString *str1 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; 20 NSLog(@"%@",str1);
NSData类型简单写入文件的方法:
1 //将网络图片地址转化为URL类型 2 NSString *str = @"http://img.fs0757.com/news/2015/0901//2015090110400752.jpg"; 3 4 NSURL *url = [NSURL URLWithString:str]; 5 //1?? 写的东西 数组,字典,data date 6 NSData *data = [NSData dataWithContentsOfURL:url]; 7 //2?? 写到哪里 8 NSString *documentStr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; 9 NSString *path = [documentStr stringByAppendingString:@"/dsa.png"]; 10 // 3?? 写入文件 11 [data writeToFile:path atomically:YES]; 12 13 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100,100 ,100)]; 14 //4?? 写完拿出来使用 15 NSData *data1 = [NSData dataWithContentsOfFile:path]; 16 //将data类型转化为image类型 17 UIImage *image1 = [UIImage imageWithData:data1]; 18 //此步是将转化过来的image 赋给imageView上 19 imageView.image = image1; 20 21 [self.view addSubview:imageView]; 22 23 NSLog(@"%@",path); 24
//*直接写入本地时,第一次写入后,如果再次写入时会覆盖之前的操作
//*一次只能写入一条数据
//*如果不覆盖,就要先读出来,然后再写进去
//*如果能直接写入本地的 一定要遵循的NSCoding协议
三.复杂对象写入文件
四.NSUserDefaults写入读取文件
标签:
原文地址:http://www.cnblogs.com/erdeng/p/4857577.html