iOS沙盒(sandbox)机制

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 是否获取全路径 YES

2、获取不同区域
//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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值