2

はい、知っています。この質問は、CoreDataファイルをどこに保存するかですでに回答されています。とドキュメントディレクトリの外にコアデータファイルを保存しますか?

@Kendall HelmstetterGelnerと@MatthiasBauchは、非常に良い回答を提供しました。私は彼らに賛成した。

今、私の質問は非常に概念的であり、それを説明しようと思います。

Appleドキュメントの「アプリのファイル」セクションをどこに置くべきかから、私は次のことを読みました。

サポートファイル(アプリケーションがダウンロードまたは生成し、必要に応じて再作成できるファイル)を次の2つの方法のいずれかで処理します。

  • iOS 5.0以前では、サポートファイルを/ Library / Cachesディレクトリに配置して、バックアップされないようにします。

  • iOS 5.0.1以降では、サポートファイルを/ Library / Application Supportディレクトリに配置 し、それらにcom.apple.MobileBackup拡張属性を適用します。この属性は、ファイルがiTunesまたはiCloudにバックアップされるのを防ぎます。多数のサポートファイルがある場合は、それらをカスタムサブディレクトリに保存し、拡張属性をディレクトリのみに適用できます。

Appleによれば、サポートファイルを処理するには、インストールされているiOSに基づいて2つの異なる方法に従うことができます。私の意見では(しかし私は間違っているかもしれませんが)コアデータファイルはサポートファイルであるため、これらのカテゴリに分類されます。

そうは言っても、マティアスとケンダルのアプローチは引き続き有効かどうか。特に、Libraryフォルダー内にPrivateなどのディレクトリを作成した場合、このディレクトリはiOS 5バージョン(5.0および5.0.1)の両方で引き続き非表示のままになりますか、それともAppleのソリューションに従う必要がありますか?後者が有効な場合、サンプルまたはリンクを提供できますか?

前もって感謝します。

4

1 に答える 1

1

コアデータファイルは実際にはサポートファイルではないと思います。保存されているデータを複製する方法がない限り、バックアップする必要があります。

サポートファイルは、画像や、リモートWebサイトのキャッシュのみであるデータベースなどです。

したがって、Core Dataデータベースを好きな場所に配置し続けることができます(ただし、アプリケーションサポートの下にある必要があります)。

2013年1月の最近の追加:Appleは、バンドルから書き込み可能領域にコピーしたプリロードされたCoreDataデータストアを、同じデータベースにユーザーデータを書き込んだ場合でも、サポートファイルであるかのように扱い始めました。(DTSからの)解決策は、データベースを所定の位置にコピーするときに、バックアップ禁止フラグを設定してから、ユーザーデータがデータベースに書き込まれる場合は設定を解除することです。

CoreDataストアが純粋にダウンロードされたネットワークデータのキャッシュである場合は、キャッシュのような場所に配置されるか、バックアップ禁止フラグが設定されていることを引き続き確認してください。

于 2012-09-12T20:13:53.360 に答える