AIR 3.6 から File クラスに新しい属性が 2 つ追加されました。いずれも、基本的には Apple のアプリストアの新しいガイドラインへの対応です。
File.cacheDirectory
Apple のガイドラインでは、再度ダウンロード可能なファイルやもう一度生成が可能なファイルは <APPLICATION_HOME>/Library/Caches の下に配置することになっています。
新しく追加された File.cacheDirectory 属性は、OS X と iOS 上では、このディレクトリを指します。そのため、以下のように生成されたファイルは iClould へのバックアップの対象となりません。
var myCache:File = File.cacheDirectory.resolvePath("cache.txt");
Android の場合、File.cacheDirectory は <APPLICATION_HOME>/caches を, Windows の場合は、File.createTempDirectory() メソッドが新しいディレクトリの作成に使用する親ディレクトリを指すようです。
File.preventBackup
こちらは iOS 5.1 以降のみで有効な属性です。それ以外の環境では利用しても効果は無いことになってます。
iOS では、APP_HOME/tmp/ または APP_HOME/Library/Caches ディレクトリの下のファイルは iClould へのバックアップ対象ではありません。File.preventBackup 属性を使うと、"それ以外" の場所に配置されたファイルも iCloud へのバックアップの対象外とすることができます。
デフォルト値は false です。これを true にすると、バックアップの対象では無くなります。
フォルダに対して true を設定した場合は、そのフォルダ以下の全てのファイルがバックアップ対象では無くなります。
下は、実際に属性の値を設定する例です。
var foo:File = File.applicationStorageDirectory.resolvePath("foo.txt"); foo.preventBackup = true;
iOS シミュレータ内ではこの属性は無効です。
以上 2 つの新しい属性を利用するには、名前空間を 3.6 にして、コンパイル時に -swf-version=19 を指定します。
先日公開された AIR 3.7 のベータ版では、Shared Object にも preventBackup 属性が追加されているようです。 (AIR 3.7 ベータ版の公開)
コメントする