Sandbox About

SandBox 


Bundle:

1. 包括工程的的所有资源文件

2. 只可读不可写入

3. 不能被iTunes 和 iCloud 备份


Data_Container:

1. Documents 可读写,放置欲暴露给用户的文件,可iCloud和iTunes备份

2. Library 存储非用户信息优先(不愿用户知晓),如缓存文件/自定义目录可iCloud和iTunes备份

3. Tem 临时文件目录,不可被iCloud和iTunes备份,如NSURLSession下载任务文件的临时存储地




<参考文档dev.apple.com ~>





处理文件的规则:

  基本原则记住:文件备份是需要花费时间和存储空间的,存储文件太大会降低用户使用iTunes和iCloud备份文件的速度,同事消耗用户的可用空间,由此可能会激发用户将app删掉。


  1. Documents/ 存储所有可以暴露给用户的文件 ~> 任何你想要用户直接进行直接编辑删除和使用的文件,如对于绘图文稿编辑类的app,那么用户创建的文件,txt文稿;对于音频视频类app,那么就是下载的音频视频文件。
  2. Library/Application support/ 一般来说,存储app需要使用但是应该对用户隐藏的文件 ~> 这个目录也可以存储如data 文件,配置文件,从app bundle中加载过来的模板和移动版本资源文件。
  3. 注意 Documents/ 和 Library/Application support/ 中的文件是默认备份的,为了设置备份移除,需要使用方法:[NSURL setResourceValue:forKey:error:] key 值使用 NSURLIsExcludedFromBackupKey. 任何新建或者下载的文件都需要从备份中移除,这个对于大媒体文件来说很重要,需要确保他们不再备份选项中。
  4. tmp/ 存储临时文件,这里存储的文件是不能用于持久话的文件,记得在使用完这些文件之后将它们删除掉,否则会消耗设备的存储空间,当你的app停止运行的时候系统会周期性检查temp目录中的文件进行清理,因此当程序终结后就不能再依靠这些临时文件了。
  5. Library/Caches/  缓存需要比临时文件更持久保存的文件,但是并不作为必须文件,却是让程序能够更好的运行,如缓存文件可以包括:数据库缓存,临时下载文件类容。注意系统可能删除Caches/ 中的类容来释放磁盘空间,所以app 必须可以重新创建或者下载那些需要的文件。


Library 目录 存储App-特定文件

library目录是app或者其他代码模块中用于存储自定义数据文件的,无论是iOS或者OS X中,其目录结构都是很重要的。一般用来存储data 文件,缓存,资源文件,偏好配置文件,甚至一些特别或者特殊场景下的用户数据。OS X的Library结构相对复杂,这里说iOS的。 


  1. Application Support / 
  • 除了与用户的文档关联的,它可以存储所有的app 数据文件。譬如:存储app创建的数据文件,配置文件,临时文件,其它一些可被APP变更的资源文件。app可以用此目录存储一些拷贝修饰来自appbundle的文件。可以存储一些下载自服务器的文件。
  • 存储在这个目录下的所有类容都应该搁置到一个子目录中,子目录的命名方式可以选用公司名或者app的bundle 标识符如:com.company.appName.other ~
  • 在iOS中,本目录下的文件默认会被iTunes 和 iCloud备份
  1. Caches /
  • 存储一些app可以轻易重建的文件,app需要管理文件的添加和删除。
  • 在iOS 2.2 之后,目录并不会被被iTunes或者iCloud备份,并且如果重启机器的话,系统会情况目录。
  • 在iOS 5.0之后,系统会根据情况情况目录,如当磁盘空间很少时候,不过当APP正在运行的时候这个情况是不会发生的。
  1. Preference /
  • 目录包括一些特别的偏好文件,不能够自己在该目录下创建文件。代之的,可以使用NSUserDefaults 类 或者 CFPreference API 来写入和读取APP的偏好值。
  • 在iOS中,本目录下的内容会被ITunes 和 iCloud 备份的。


关于文件操作说一句:

对于iOS 开发来说,一般而言所能操作的文件区域都在SandBox中,iOS apps 应该将文件存储到sandbox中所知道的位置,并且使用自己定义的接口去处理这些用户文件。然而,iOS apps 也是可以通过 UIDocumentPickerViewController 去提点用户导入,导出,打开或者移动文件,并可能定位到了app的沙盒之外。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值