沙盒机制
iOS程序默认情况下只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,被称为“沙盒”。
沙盒结构
既然沙盒就是一个文件夹,那就看看里面有什么吧。沙盒的目录结构如下:
应用程序包 Documents Library Caches Preferences tmp
当我们创建应用程序时,在每个沙盒中都有上述三个文件,分别是Document、Library和temp。
目录特性
"应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件。
NSString *path = [[NSBundle mainBundle] bundlePath];
沙盒目录:
NSString *homePath = NSHomeDirectory()
Documents: 最常用的目录,iTunes同步该应用时会同步此文件夹中的内容,适合存储重要数据。
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;`
Library/Caches: iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
Library/Preferences: iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息。
tmp: iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除。
NSString *path = NSTemporaryDirectory();