您的位置:首页 > 移动开发 > IOS开发

IOS的沙盒机制

2014-03-03 20:46 316 查看
iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒,所有的非代码文件都要保存在此,例如图像、图标、声音、映像、属性列表、文本文件等
1.每个应用程序都有自己的存储空间
2.应用程序不能翻过自己的围墙去访问别的存储空间中的内容
3.应用程序请求的数据都要通过权限检测,假如不符合条件,不会被放行

IOS沙盒结构

应用程序包:(Bundle)包含了所有的资源文件和可执行文件

Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录(游戏数据)

Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积较大、不需要备份的非重要数据(微博图片)

Library/Preference:保存应用的所有偏好设置,iOS的设置应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录
(也就是个性化设置,用户的登录名和密码)

tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录(不重要的文件)

获取沙盒目录:
//获取程序的安装目录
NSString *home=NSHomeDirectory();
NSLog(@"程序目录%@",home);

//获取document目录
//NSUserDomainMask从用户文件夹开始找 YES代表代表展开路径中的波浪字符“~”
NSArray *documet=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *doc=documet[0];
//用字符串拼接的方式获取document目录
NSString *path=[home stringByAppendingString:@"Documents"];

//获取cache目录
NSArray *cache=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSLog(@"cache=%@",cache[0]);

NSLog(@"%@",path);

//获取temp目录
NSString *temp=NSTemporaryDirectory();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS 沙盒机制