iOS5.0引入了iCloud,让那些需要本地存储较多数据的app开发者(比如支持离线的杂志,新闻类app)陷入了 尴尬的境地,因为将大量数据存储在/Documents 文件夹将导致iCloud同步变的缓慢,影响用户体验,且影响用户的存储空间,基于此种考虑,苹果审核团队开始拒绝这样的app,苹果给出的建议是:

1.只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在<Application_Home>/Documents 目录下面,并将通过iCloud自动备份。
2.可以重新下载或者重新生成的数据应该保存在 <Application_Home>/Library/Caches 目录下面。举个例子,比如杂志、新闻、地图应用使用的数据库缓存文件和可下载内容应该保存到这个文件夹。
3.只是临时使用的数据应该保存到 <Application_Home>/tmp 文件夹。尽管 iCloud 不会备份这些文件,但在应用在使用完这些数据之后要注意随时删除,避免占用用户设备的空间。

在 iOS 5 设备中,存储空间警告时,如果此时应用没有运行,那么该应用的
<Application_Home>/Library/Caches文件夹中的数据将被清空。这样开发者将没有可以持久的存储数据的文件夹
了,怎么办?到apple楼下集 会抗议?。。。提交漏洞报告吧

终于,苹果在此次ios5.0.1的版本中做出了让步,引入
了"do not back up" attribute,为了那些files that shouldremain on device, even
in low storage
situations.(即使在低内存时也不会丢失的文件,而之前的/Library/Caches在低内存时文件是会被丢弃的)

怎么实现?

当你想将文档指定为“do not back up”时候,在你的类中添加下面的函数,记得#include <sys/xattr.h>

- (void) AddSkipBackupAttributeToFile: (NSURL*) url //文件的URL
{    u_int8_t b = 1;          
     setxattr([[url path] fileSystemRepresentation], "com.apple.MobileBackup", &b, 1, 0, 0);
}

搞掂,支持离线的app开发者们有福了...

最新文章

  1. Dagger2系列之使用方法
  2. VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式
  3. BSBuDeJie_01
  4. bzoj2141 树状数组套Treap树
  5. Centos5.8 安装 PHP5.5 和 memcached
  6. JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
  7. Counting-Sort
  8. 【JSP】JSTL使用core标签总结(不断更新中)
  9. 本地化下按首字母分组排序的神器——UILocalizedIndexedCollation
  10. Mantis 1.1.0 报告问题中设置必填项或取消必填项[Z]
  11. HTML5兼容IE各版本的写法
  12. javascript实现的可改变滚动方向的无缝滚动
  13. json解析eval()中文乱码问题的解决
  14. 04-TypeScript中的方法新功能(上)
  15. Asp.net MVC 中Ajax的使用
  16. opencv学习之路(13)、图像阈值化threshold
  17. Java String 中的一些函数与正则的结合使用
  18. Redis笔记(二):Redis数据类型
  19. APP推送通知相关实现
  20. 如何用Python做Web开发?——Django环境配置

热门文章

  1. cf976d Degree Set
  2. [netty4][netty-transpot]Channel体系分析
  3. python 令人抓狂的编码问题
  4. 【转】netstat 查看端口占用情况
  5. setTimeOut传参数
  6. [国家集训队][bzoj2120] 数颜色 [带修改莫队]
  7. [usaco dec 15] 卡牌游戏 cardgame [贪心]
  8. jquery - 设置/获取内容和属性
  9. nodeJS学习(6)--- Sublime Text3 配置Node.js 开发环境
  10. Date()和new Date()区别