iOS开发相关

沙盒目录解析

2017-08-29  本文已影响0人  LOVE婷

简介:

每个ios的应用程序都会有自己的沙盒,这个沙盒就是文件目录。

特点:

           1.每个应用程序的活动范围都限定在自己的沙盒里

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

          (iOS8已经部分开放访问extension)

           3.在访问别人沙盒内的数据时需要访问权限。

好处:APP之间不能相互通,唯独可以通过URL Scheme可以通信, 比较安全!沙盒本身就是

一个独立,安全,封闭的空间!

下面来看下一个App的沙盒目录:

很明显,目录分为四大部分,下面来一一说明一下:

1. Documents 目录

您应该将所有的应用程序数据文件写入到这个目录下。

这个目录用于存储用户数据或其它应该定期备份的信息。

保存由应用程序产生的文件或者数据,例如:涂鸦程序生成的图片,游戏关卡记录

iCloud会自动备份Document中的所有文件。

2. Library 目录: 子目录(Caches 和 Preferences)

Preferences目录: 用来存储偏好设置文件, 通过[NSUserDefaults standarDefaults]来直接操作

Caches目录: 用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息

缓存,保存下载的文件资源等,以供后续使用

PS: 缓存的资源文件不会自动删除,所以想要删除,需要有清除缓存的功能!

3. tmp 目录: 用于存放临时文件(数据), 保存应用再次启动时不需要的数据。

临时文件夹里面的文件,由系统回收, 如磁盘内存不足,重启手机,应用进程杀掉,都会清除临时文件,程序员不用手动管理临时文件的!

常用获取文件目录的方法:

1. 获取根目录:

//获取沙盒根目录路径

NSString *homeDir = NSHomeDirectory();

2. 获取Documents目录

//获取Documents目录路径

//使用 NSSearchPathForDirectoriesInDomains 只能定位Caches目录和Documents目录

NSString*path =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

3. 获取Caches目录路径的方法

//获取Caches目录路径

NSString *dir =[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastobject];

4. 获取tmp目录

//获取tmp目录路径

NSString *tmpDir = NSTemporaryDirectory();

上一篇下一篇

猜你喜欢

热点阅读