Adobe AIR在iOS上的存储目录 (符合iOS Data Storage规范)

近日用air 开发的ios app,提交后说是文件不符合iOS Data Storage规范,查了很多资料,终于解决了!Adobe <wbr>AIR在iOS上的存储目录 <wbr>(符合iOS <wbr>Data <wbr>Storage规范)给自己鼓鼓掌。

其实这个官方早就给出了解决方案,只是我一直都不知道,乱碰壁。为了让大家不会像我一样碰壁,我在这写出来供大家参考。

按照苹果公司的iOS Data Storage要求,下载数据或生成数据,应该放置在/Library/Caches这个目录下。所以,从AIR 3.6的版本开始,文件类增加了一个新属性,即File.cacheDirectory,这个属性指向了上面所说的缓存目录。存储在这个目录中的文件,不会被备份到Cloud。您放置在缓存目录下的文件可能是数据库缓存,也可能是互联网下载内容,这些内容可能被电子杂志,报纸,和地图应用所使用。

在Mac OSX和Android系统上,File.cacheDirectory定位到缓存目录(在Mac上是APPLICATION_HOME>/Library/Caches ,在Android上是/caches)。如果是Windows,它会定位到上层并调用File.createTempDirectory创建一个空目录。

var myCacheFile: File = File.cacheDirectory.resolvePath("cacheFile.txt");

如果有这种需要:一个文件或目录必须存放在/Library/Caches目录之外,但又必须阻止iCloud对它的备份(比如文件存放在应用程序的存储目录)。为了解决这个问题,File类增加了一个新的属性,即File.preventBackup,这个属性在所有的平台上都是false,只有在iOS上可以设置为true。如果设置为true,则iOS下相应的文件/目录不会进入iCloud的备份。如果File对象指向了iOS的一个目录,则该目录下的所有文件都不会被备份。这个属性会在iOS 5.1和更高的版本上起作用,但在模拟器上无效。如果文件存储在APP_HOME/tmp/或者APP_HOME/Library/Caches下面,那么无论preventBack如何设置,iCloud都不会对目录下的内容备份。

var file: File = File.applicationStorageDirectory.resolvePath("abc.txt");

file.preventBackup = true;

使用这个特性需要AIR的命名空间大于等于3.6,SWF版本大于等于19.

官方资料参考:http://blogs.adobe.com/airodynamics/2013/02/13/preventing-automatic-cloud-backup-on-ios-devices/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值