iOS沙盒(sandbox)机制

来源:互联网 发布:dafa888信誉第一js 编辑:程序博客网 时间:2024/06/03 19:42

1、沙盒的基本概念和作用

每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用的文件系统隔离, ios系统不允许访问其他应用的应用沙盒。在ios8中已经开放访问(extension)。extension是iOS8新开放的一种对几个固定系统区域的扩展机制,它可以在一定程度上弥补iOS的 沙盒机制对应用间通信的限制。

2、应用沙盒一般包括以下几个文件目录:应用程序包、Documents、Libaray(下面有Caches和 Preferences目录)、tmp。

1、应用程序包:包含所有的资源文件和可执行文件。2、Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录。苹果建议将程 序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目 录3、tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行 时,系统也有可能会清除该目录下的文件,iTunes不会同步该目录。iphone重启时,该目录下的 文件会丢失。4Library:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。4.1、Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除。一 般存放体积比较大,不是特别重要的资源。4.2、Libaray/Preferences:保存应用的所有偏好设置,ios的Settings(设置)应用会在该目录中查找 应用的设置信息,iTunes会自动备份该目录。

2、获取沙盒路径

1、获取绝对路径的方法: NSSearchPathForDirectoriesInDomains 返回一个绝对路径用来存放我们需要储存的文件第一个参数:要获取的沙盒文件夹名称第二个参数:NSUserDomainMask = 1,//用户主目录中 NSLocalDomainMask = 2,//当前机器中 NSNetworkDomainMask = 4,//网络中可见的主机 NSSystemDomainMask = 8,//系统目录,不可修改(/System) NSAllDomainsMask = 0x0ffff,//全部第三个参数:YES/NO 是否获取全路径 YES2、获取不同区域//Document目录 NSArray *paths  = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *path  = [paths objectAtIndex:0];//Cache目录 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,  ask, YES);NSString *path  = [paths objectAtIndex:0];//Libaray目录 NSArray *paths  = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);NSString *path = [paths objectAtIndex:0];//tmp目录NSString *tmpDir = NSTemporaryDirectory();

3、在沙盒文件中创建文件夹
在Document目录下创建新的文件夹test
这里写图片描述

0 0
原创粉丝点击