tvOS のアプリ プログラミング ガイドには、次のように簡単に記載されています。
Apple TV には、アプリ用の永続的なローカル ストレージはありません。つまり、新しい Apple TV 用に開発されたすべてのアプリは、iCloud にデータを保存し、優れたカスタマー エクスペリエンスを提供する方法でデータを取得できる必要があります。
これは NSUserDefaults が利用できないということですか? データストレージにはどのようなメカニズムが利用できますか?
tvOS のアプリ プログラミング ガイドには、次のように簡単に記載されています。
Apple TV には、アプリ用の永続的なローカル ストレージはありません。つまり、新しい Apple TV 用に開発されたすべてのアプリは、iCloud にデータを保存し、優れたカスタマー エクスペリエンスを提供する方法でデータを取得できる必要があります。
これは NSUserDefaults が利用できないということですか? データストレージにはどのようなメカニズムが利用できますか?
devforums の Apple スタッフ メンバーによると、最大 500 kb のデータに対して tvOS で NSUserDefaults を使用できます。
Apple は、あなた (および AppleTV の顧客) が iCloud にサインアップして使用することを本当に望んでいます。
これは、AppleTV を使用した永続ストレージの対処方法に関する現在のドキュメントです。
導入段落:
Apple TV のストレージは制限されており、デバイスに保存されている情報が次回ユーザーがアプリを開いたときに利用できるという保証はありません。また、ユーザーのデータを複数のデバイスで共有するには、ユーザーの情報を Apple TV 以外の場所に保存する必要があります。Apple では、Apple TV 用に 2 つの共有ストレージ オプションを提供しています。iCloud Key-Value Storage (KVS) と CloudKit です。
1 MB 未満のファイルの場合は、iCloud Key-Value Storage (KVS) を使用します。1 メガを超えるストレージの場合は、CloudKit を使用します。
NSUserDefaults は利用可能ですが、tvOS ではサイズが制限されています。フォーラムの Apple スタッフによると、「NSUserDefaults は許可されており、最大 500KB のデータをサポートしています。」また、「動作は iOS と同じです。ユーザーがデバイスからアプリを削除しない限り、NSUserDefaults は永続的です。」
また、NSUserDefaults.h ヘッダーによると、「NSUserDefaultsSizeLimitExceededNotification は、許可されているよりも多くのデータがユーザー デフォルトに格納されている場合に、メイン キューにポストされます。現在、512kB で警告通知がポストされる tvOS を除いて、ローカル ユーザー デフォルトに制限はありません。プロセスは 1MB で終了しました。ユビキタスなデフォルトの場合、制限はログインしている iCloud ユーザーによって異なります。」