沙盒机制
iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”。
应用程序目录的路径:NSString *paths = NSHomeDirectory();该目录结构如下:“应用程序包”、Documents、Library/Caches、Library/Preferences、tmp。!该目录下就是应用程序的沙盒,应用程序只能访问该目录下的文件夹!
1、"应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件。NSString *path = [[NSBundle mainBundle] bundlePath];
2、Documents: 最常用的目录,iTunes同步该应用时会同步此文件夹中的内容,适合存储重要数据。这个目录用于存储用户数据。
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
3、Library/Caches: iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
Library/Preferences:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好。 iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息。
4、tmp: iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除。