UISenior_数据处理--------文件读写--------

 

                                        数据存储之沙盒路径

 

  第一种打开应用程序沙盒路径的方式

第一个参数(NSDocumentDirectory)是:枚举值,枚举你具体要查找的文件夹【要进入哪个文件夹直接修改其枚举值即可】   这里的NSDocumentDirectory作用代表进入Documents文件夹,如想进入其它文件夹可对其进行修改 可查看其枚举值的类型  如:进入Caches文件夹  第一个参数改为NSCachesDirectory

第二个参数:NSUserDomainMask表示用户的主目录

第三个参数:一般设置为YES表示展示完整的路径

NSSearchPathForDirectoriesInDomains查找沙盒路径的,返回值是一个数组,这个数组里边只有一个元素,这个元素就是路径,直接使用下标取出即可,此处的下标取为0即可

 

 

  第二种打开应用程序沙盒路径的方式

第一步:找到主目录文件夹

 

第二步:然后拼接自己想进入的文件夹名称

stringByAppendingPathComponent进入文件夹是通过住目录找到Library文件夹再找到其中的Caches文件

stringByAppendingString进入文件夹是通过住目录找到Library文件夹再找到其中的Caches文件       *(此处注意:Library前必须有/ )--系统寻找路径时此方法不会自动生成/,需自行添加

  特殊的文件夹的查找方式

 

 

检验路径是否存在的方法可通过打印获得对应路径字符串,赋值此字符串通过以下方式查找

1.先找到Finder图标 此图中左上角的笑脸图标  2.点开后点击上方菜单栏中的前往按钮   会出现一个前往文件夹图标 (也可用对应的快捷键来打开) 

3.打开后会出现一个输入框  将复制的路径粘贴其中 就可找到对应文件

 

 

 

 

 

                                       简单对象的本地持久化

 

NSString类型的数据存储到本地(此处只拿NSString进行举例 NSArray和NSDictionary类型基本相似不再举例)

 

 

  将NSData类型的数据存储到本地(以图片为例)

初始化image

这种必须拼接图片的全名称,否则image的路径为空

 

使用initWithContentsOfFile初始化图片的时候,每次都会根据路径去读取,不会占用内存,如果图片在当前工程中只使用一次,应该选择这个方法

 

(另一个初始化方法使用imageNamed:第一次读取的时候,先把这个图片放到缓存里,下次再使用到这个同名图片的时候直接从缓存中读取;优点:方便快捷,只有第一次使用的时候稍慢,接下来再使用就会稍微快点;缺点:如果在当前工程中只使用一次会浪费内存)

 

image类型的对象转换成NSData类型的数据进行存储

使用UIImageJPEGRepresentation将图片转换成NSData类型的

第一个参数(image):要转换的image对象

第二个参数(1):表示图片压缩的值,此时为1表示原比例不变

iPhone中将大于2M的图片,会自动旋转90度,所以最终会将图片保存成jpeg格式的

 

 

 

                                复杂对象的本地化

首先创建NSObject类的文件命名为Person

Person.h文件里声明属性  *(<NSCoding>  此协议写在NSObject后)

在Person.m文件里进行编写如下

 

在Controller控制器里先导入#import "Person.h"

 

 

   归档

 

   解档

 

直接写入本地:数据是整存整取的

 

 

 

posted on 2016-05-03 20:54  Mr.zun  阅读(222)  评论(0)    收藏  举报