数据本地化:
1;什么是沙盒,有哪些文件,作用
(独立:不可能两个程序共用一个沙盒。
封闭:每一个应用程序的沙盒,只有它自己才能使用.
安全:沙盒里边每个文件夹都有自己特有的删除渠道. 只要自己手动不删除,文件永远存在)
沙盒中文件:(作用)
Documents:存储一些永远不想被删除的文件,在备份的时候,同时在iTunes备份,可以同步出来,不能放太大文件(太大会在iphone进行审核时,被拒掉).
Library:
里边的Caches文件:存放缓存,不会同步,一般存放体积大,不重要,不需要备份的数据.
里边Preferences:保存应用的偏好设置,iTunes会备份保存这个目录,一般不要直接创建偏好设置文件,应使用NSUserDefaults类来取得和设置应用程序的偏好.
tmp:存储临时文件夹,程序不运行时,可能删除该目录下的文件,iPhone重启时会删除该目录下文件,iTunes不会备份该目录下文件
获取文件夹地址的方法:
第一种;通过NSSearch收索文件夹的地址,但是不能获取tmp文件夹的地址,其他的都可以获取到.
NSString*documentPathStr=[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)objectAtIndex:0];
//NSDocumentDirectory:获取文件夹Document的地址,NSLibraryDirectory:获取文件夹Library的地址
//NSUserDomainMask:用户主目录
//第三个参数表示展开"~"的地址,设置为YES为完整路径
//NSSearchPathForDirectoriesInDomains获取的是一个数组,数组只有一个元素,所以可以直接获取objectAtIndex:0;
第二种;首先获取沙盒主路经的地址,然后拼接上想要的文件夹的地址.
NSString*homePathStr=NSHomeDirectory();
NSString*documentPathStr=[homePathStr stringByAppendingPathComponent:@"Documents"];
缓存:
当用户对某一个URL做请求操作的时候,这个URL里面的东西会保存在主机里面的某一个位置。
iTunes 不会备份此目录,存放缓存文件,此目录下文件不会随应用退出而删除。一般存放体积比较大,
2;什么是数据本地化,什么时候使用?
把数据存储在应用程序的沙盒里边.
数据本地化的方式有三种:
第一种:直接写入本地;
什么类型的对象可以直接存入本地:
NSString:[在写入本地的时候,需要做一次UTF-8的转码,在读取的时候也要做一次.]
NSData:
[NSData如何转化为UIImage:UIImage类有initWithData方法
UIImage如何转化成 NSData通过 UIImageJPEGRepresentation 方法把图形转化成 NSData]
NSDictionary:
NSSarry:
存入本地的过程:找打要存路径,写要存内容,创建新文件,存储数据
第二种:sqlite;
第三种:CoreData;
第四种;NSUserDefaultes(属性列表).
(归结档不是数据本地化的方式,是数据编辑方式)