この質問を表現するためのより良い方法を考えることができなかったので、明確にしましょう:
私は多くのものをCoreDataに保存していますが、そのうちのいくつかはバイナリデータとして保存された画像です。これらの画像は外部ストレージを許可するように設定されています。つまり、私が収集できることから、これらの画像が大きすぎる場合(> 1MB?)、CoreDataがデータベース自体の内部ではなくディスク上の他の場所にこれらの画像を保存します。また、ファイル共有を使用してこのデータベースの簡単なバックアップ/復元システムを構築しようとしています。[バックアップ]をクリックすると、.sqliteファイルがライブラリフォルダーからドキュメントフォルダー(別の名前)にコピーされ、ユーザーがiTunesからアクセスできるようになります(好きな場所に保存します)、[復元]をクリックすると、Documentsフォルダーでバックアップファイルが検索され、Libraryフォルダーでアクティブな.sqliteファイルが削除され、バックアップに置き換えられます。
Core Dataからイメージを削除すると問題が発生しますが、そのイメージがまだ存在していた時間にデータベースを復元したいと思います。Core Dataを使用してその画像を削除すると、データベースに保存されている画像へのパスと、他の場所に保存されている画像自体の両方が削除されていると思います。しかし、.sqliteファイルを元に戻して古いデータベースを復元すると、イメージへのパスのみが存在します。イメージ自体は外部に保存されているため、どこにも見つかりません。
まず第一に、これはCore Dataでデータベースをバックアップおよび復元するための合理的なアプローチですか、それとも、基になる.sqliteファイルを前後にコピーすることによってそれを実行するべきではないという明確な理由がありますか?次に、Core Dataが外部ストレージを処理できるようにすると同時に、それらのイメージをバックアップする方法について、誰かがアドバイスを提供できますか?おそらく手動で画像を保存できるので、.sqliteファイルと一緒に画像フォルダをバックアップできることを理解していますが、Core Dataにこれを管理させるという単純さが好きなので、あるかどうか疑問に思っています。このバックアップ/復元を行うためのより良い方法。