3

私のアプリにはダウンロード可能なアプリ内購入があります。コンテンツがダウンロードされると、今はドキュメントディレクトリに保存しています。しかし、私はAppleが気まぐれであり、復元できるコンテンツをドキュメントディレクトリに保存するべきではないため、おそらく私のアプリを拒否することを知っています。つまり、icloudに保存されます。

一時ディレクトリまたはキャッシュディレクトリを使用することを考えましたが、iOSにスペースが必要な場合はいつでもこれらを空にすることができます。

どこに保存すればいいですか?

4

3 に答える 3

6

このDocumentsディレクトリは、ダウンロードできないユーザー生成データ(ユーザーが選択可能な設定などを含む潜在的なデータベースを含む)にのみ使用できるため、ダウンロード可能なコンテンツをそこに保存すると、おそらく拒否されます。

私が行った方法は、ダウンロードしたデータをに保存しCache(スペースが不足しているときはいつでもクリアできます)、Documentsコンテンツをに保存する必要があることを示す小さなデータをに保存することCacheです。Documentsデータが存在するはずであるが存在しないと表示された場合、スペースの問題によりコンテンツがiOSによって自動的に削除されたことをユーザーに通知し、ユーザーに再度ダウンロードするように提案します。

そうすれば、ユーザーがコンテンツをしばらく使用しない場合でも、デバイスのスペースを他の目的に再利用でき、コンテンツを自由にダウンロードできます。私がユーザーだったらアプリを動かしたいのと同じように:)

編集:Libraryそれらを常に永続的にする必要がある場合はそれらを入れることができますが、iCloudにバックアップされていないものとしてマークすることを忘れないでください。そうしないと、同じ拒否を受ける可能性が高くなります。

于 2013-02-09T16:55:56.753 に答える
0

また、ドキュメントフォルダーはユーザー生成コンテンツ用であり、必要に応じてデータを削除できるにもかかわらず、キャッシュフォルダーを使用することをお勧めします。また、iOS 5.1以降を対象とする場合は、バックアップフラグなしでドキュメントフォルダを使用することを選択できることも読みました。

iOS 5.0.1を参照 してください:フォルダがiCloudの「バックアップしない」とマークされていることを確認するにはどうすればよいですか?

iOS5.0.1のフォルダ階層に「バックアップしない」属性を追加する

于 2013-04-21T00:51:53.930 に答える
0

こちらのドキュメントhttps://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/DeliverProduct.html#//apple_ref/doc/uid/TP40008267-CH5-SW5

Documents永続化する場合は、フォルダがコンテンツを移動する場所であると言います。

iOSでは、アプリはダウンロードされたファイルを管理できます。ファイルは、バックアップフラグが設定されていない状態で、StoreKitフレームワークによってCachesディレクトリに保存されます。ダウンロードが完了すると、アプリはそれを適切な場所に移動する責任があります。デバイスのディスク容量が不足した場合(および後でアプリによって再ダウンロードされた場合)に削除できるコンテンツの場合は、ファイルをCachesディレクトリに残します。それ以外の場合は、ファイルをDocumentsフォルダーに移動し、フラグを設定してユーザーのバックアップから除外します。

于 2014-07-09T10:00:49.367 に答える