沙盒

一、沙盒中几个主要的目录

每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档):

每个应用的沙盒目录都是相似的,主要包含图中所示的四个目录:

1.MyApp.app

1.1 存放内容

该目录包含了应用程序本身的数据,包括资源文件和可执行文件等。程序启动以后,会根据需要从该目录中动态加载代码或资源到内存,这里用到了lazy loading的思想。

1.2 整个目录是只读的

为了防止被篡改,应用在安装的时候会将该目录签名,非越狱的情况下,该目录中的内容无法更改。

1.3 不会被iTunes同步

1.4 路径获取

NSString *homePath = NSHomeDirectory();

2.Documents

2.1存放内容

2.3 路径获取

NSArray *docArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *docPath = [docArr objectAtIndex:0];

3.Documents/Inbox

3.1 存放内容

4.Library

4.3 路径获取

NSArray *libraryArr = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

NSString *libraryPath = [libraryArr objectAtIndex:0];

5.Library/Caches

5.1 存放内容

主要是缓存文件,用户使用过程中缓存都可以保存在这个目录中,保存可再生的文件,比如网络请求的数据。鉴于此,yingyong程序通常还需要负责删除这些文件。

不会被iTunes同步

路径获取

NSString *cache = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

6.Library/Preferences

6.1 存放内容

应用程序的偏好设置文件。我们使用NSUserDefaults写的设置数据都会保存在这个目录下的一个plist文件中,这就是写到plist中!

会被iTunes同步。

7.tmp

7.1 存放内容

各种临时文件,保存应用再次启动时不需要的文件。而且,当应用不再需要这些文件时应该主动将其删除,因为该目录下的东西随时可能被系统清理掉,目前已知的一种可能清理的原因是系统磁盘存储空间不足的时候。

不会被iTunes同步。

路径获取

NSString *tempPath = NSTemporaryDirectory();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容