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