码迷,mamicode.com
首页 > 其他好文 > 详细

UI第十八讲.初级数据持久化

时间:2015-10-06 20:44:41      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

一.什么是沙盒机制

技术分享

 

 获取沙盒路径的方法:

 

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写入读取文件

 

UI第十八讲.初级数据持久化

标签:

原文地址:http://www.cnblogs.com/erdeng/p/4857577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!