一、持久化处理:即把数据保存在硬盘中,让它一直存在
每个项目安装到iOS设备上以后,iOS操作系统会自动开辟出两个空间:
- 空间1:用于存储IPA的执行文件,即应用程序源码.这里的文件都是只读的,可以使用
NSBoundle
来读取这个文件夹的内容。 - 空间2:沙盒
SandBox
专门给IPA用于存储数据的。这里的数据是在硬盘上,所以不会随着程序的关闭而消失。
二、沙盒中一共有三个文件夹:
- Documents:专门提供给开发者用于存储各种数据的。
- Library:里面存放的是默认的用户配置文件plist,
SDWebImage
会把从网络上加载的图片存放在这里。 - tmp:临时文件,通常用于从网络上下载数据时,先存放到这个文件夹里。当下载完毕后再移到哦正规的文件夹。
读取沙盒路径的方法有两个:
- OC直接获取的方法:得到沙盒路径.
NSString *sandBoxPath = NSHomeDirectory();
- 使用C的方法获取沙盒路径:得到Documents路径.
参数1:目录,枚举类型,表示要搜索的目录类型。
参数2:域,表示搜索的范围,NSUserDomainMask
表示从当前应用的沙盒目录中搜索。
参数3:表示路径是否要展开,YES
直接显示文件夹名字,NO
直接显示文件夹的具体路径。
NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
进入沙盒中的Documents
文件夹:
NSString *docPath = [sandBoxPath stringByAppendingPathComponent:@"Documents"];
直接获取临时文件夹的目录:
NSString *tmpPath = NSTemporaryDirectory();