IOS沙盒机制

IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。

1.每个应用程序都在自己的沙盒内

2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容

3.应用程序向外请求或接收数据都需要经过权限认证

查看模拟器的沙盒文件夹在Mac电脑上的存储位置,首先,这个文件夹是被隐藏的,所以要先将这些文件显示出来,打开命令行:

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

然后重新启动Finder,点击屏幕左上角苹果标志——强制退出——选择Finder然后点击重新启动,这个时候在重新打开Finder就可以看到被隐藏的文件了。

还有一种比较简单的办法就是:

直接点击Finder图标右键——前往文件夹——输入:
/Users/本机用户名/Library/Developer/CoreSimulator/Devices/189C28D8-F8BF-4280-9301-9BC5A18F45D5/data/Containers/Data/Application/F3BAF1C5-7ECB-41AC-B07F-6C44F6248798/
然后确认就可以了(如果系统更新的话可能会有变化?反正现在是这样的)。

模拟器的沙盒文件目录了:

模拟器沙盒文件目录1

接着进入一个模拟器文件夹

模拟器沙盒文件目录2

然后可以看到Applications下面存放的就是模拟器中所装的开发的应用程序,随便进入一个后可以看到沙盒内的具体内容,如图所示:

沙盒目录3

真实iPhone设备同步时,iTunes会备份Documents和Library目录下的文件。当iPhone重启时,会丢弃所有的tmp文件。

下面的说法是从其他博客看来的:
- Documents,苹果建议将程序中创建的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录;
- Library,存储程序的默认设置或其它 状态信息;
- tmp,创建和存放临时文件的地 方。

下面通过代码来获取这些目录:

//获取根目录 
 NSString *homePath = NSHomeDirectory();
 NSLog(@"Home目录:%@",homePath);
//获取Documents文件夹目录
//第一个参数是说明获取Doucments文件夹目录
//第二个参数说明是在当前应用沙盒中获取,所有应用沙盒目录组成一个数组结构的数据存放
NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsPath = [docPath objectAtIndex:0]; 
NSLog(@"Documents目录:%@",documentsPath);

一般情况下,获取Documents路径不是最终目的,如果试图获取Documents目录下的某个文件的路径,则需要调用stringByAppendingPathComponent方法,例如,获取Documents目录下的Test目录再下面的image.png图片路径的方法:

//现获取Documents路径
NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsPath = [docPath objectAtIndex:0]; 
//再获取后面的东西
NSString *filePath = [docPath strstringByAppendingPathComponentn:@"Test/image.png"];
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值