私はsqlLiteコアデータを持っているiPhoneアプリを持っていますデフォルトデータがあらかじめロードされているモデル。ユーザーがモデルに追加した新しいレコードを保持しながら、モデルからレコードを変更または削除した場合、ユーザーがこのデフォルトデータを復元できるようにします。
sqlLiteデータベースがユーザーにコピーされます最初の実行時にドキュメントディレクトリが作成されるため、そのままのオリジナルデータベースはアプリパッケージで利用できます。 2つのデータベース間でレコードをコピーする最も簡単な方法は何ですか?私はそれが追加のpersistentStoreCoordinatorを設定すること、または追加のpersistentStoreとしてコーディネータにオリジナルのdBを追加することを含むと思います、しかしドキュメントはこれをどうやってするかについてざっくりとしています。
ありがとう、
JK
回答:
回答№1は1宛先ストアを削除せずに上書きするだけの場合は、ワークフローは次のようになります。
- ソース永続ストアを使用して2番目のコアデータスタックを起動します。
- ソースから各エンティティを取得します。
- 目的地でオブジェクトを探します。
- 存在する場合は、更新してください。
- うまくいかない場合は、作成してください。
- 宛先ストアを保存してください。
あなたが持っているデータの量によっては、これは非常に高価な操作になる可能性があります。