1.每个应用程序都有自己的存储空间。
2.应用程序不能访问其他程序的存储空间。
3.应用程序请求的数据都要通过权限检测,不符合条件的不被允许。
默认,沙盒有3个目录:
Documents:应用程序将其数据存储在documents中。
Library:基于NSUserDefaults的首选项设置存储在Library/Preferences文件夹中。
tmp:临时文件夹,同步时,iTunes不会备份/tmp中的文件,不再需要这些文件时,应用程序需要负责删除该文件。
当设备同步时,iTunes会备份Documents和Libaray目录下的文件,当重启时,会丢弃所有的tmp文件。
获取 Documents路径:
NSArray *array=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[array objectAtIndex:0];
NSDocumentDirectory:查询Documents目录
NSUserDomainMask:限制搜索范围在程序的沙盒之内。
试图访问Documents目录下某个文件的路径:
NSString *filePath=[path stringByAppendingPathComponent:@"image.png"];
stringByAppendingPathComponent:会在Documents路径后面追加“image.png”,并且会自动添加或去掉路径中多余的“/”,适合拼接地址,不适用于Url.
获取临时路径:
NSString *temp=NSTemporaryDirectory();
获取 Library路径:
NSArray *array=NSSerachPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString *path=[array objectAtIndex:0];