IOS SDK详解之沙盒(一)图解+小工具

原创Blog,转载请注明出处
blog.csdn.net/hello_hwc


前言:
IOS沙盒机制限制了App的访问权限,进而保护用户的数据信息。


一 查看沙盒结构

和一些百度来的博客显示隐藏稳文件的方式不同,本文也提供两种方式,简单粗暴。

方式一 使用工具simpholders(推荐)

下载链接
http://simpholders.com/
效果如图
技术分享


方式二 直接使用代码

用以下代码,log出documents/路径

 NSURL * url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

比如我Log出的结果

/Users/huangwenchen/Library/Developer/CoreSimulator/Devices/158D1CE6-0444-454B-B248-798726D6BC40/data/Containers/Data/Application/77B749FB-7B2F-4AE5-BE24-039BF3760F67/Documents/

然后,双击finder->前往文件夹->把上述路径复制进去


二 沙盒目录介绍

沙盒的目录如图
技术分享
不难看出,主要包括三大部分,Bundle,Data和iCloud。
而Data又包括三部分,Documents,Library,Temp.
然后,我们介绍下沙盒的每部分作用。

名称 作用
AppName.app App的Bundle包括app和app所有的资源(安装时候的图标,保存在应用包里的图片),只读。不会被Itunes备份,只会在最初始从App store的时候同步一次。
Documents/ 存储用户产生的内容。这个目录下的文件可以通过文件共享暴露给用户,也就是说,这个目录下存储的只能是你想暴露给用户的东西。iTunes备份
Library/ 非用户文件的顶级目录,用这个目录来存储哪些不想暴露给用户的文件。这个目录有很多子目录,在下文详细阐述。
tmp/ 临时文件,App应当在文件不需要使用的时候把该文件删除。存储那些不会在两次运行App都要使用的数据。不会被iTunes备份。

Library的子目录

名称 作用
Caches 写入那些App能够很容易重新创建的文件,App要管理这个目录,在适当的时候添加或者删除文件。例如网页的缓存文件。。
Preferences 用户偏好信息。例如NSUserDefaults久存储在这里

三 验证

这里打开我之前写的一个NSURLSession的Demo沙盒

我们通过上述的方式,打开沙盒看看,里面到底有什么东西。
先看看Bundle目录
我的模拟器装了三个软件,正好对应这里的三个Bundle
技术分享


再看看Data目录,正好三个目录对应着上文的三个目录
技术分享
可以看到,在看看Library的字目录,对应存储着Cache,Cookie,和Preferences信息。
技术分享


BTY:下一篇更新下如何用代码访问这些目录。另外,很多同学不知道Library目录和Document的区别,最大的区别就在上文表格的红字里。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。