Core Data (バックエンドの SQLite) を使用する iOS アプリがあります。'Item' という 1 つのエンティティしかありません。アプリには SQLite ファイルがバンドルされており、何百もの項目が事前に追加されているため、ユーザーが App Store からアプリをダウンロードすると、既にデータが含まれています。
唯一のエンティティにはBOOL favorite
、ユーザーが変更できる属性があり、もちろん、アイテムがユーザーのお気に入りのアイテムに含まれているかどうかを確認するために使用されます。
アプリ バンドル (新しい SQLite ファイル) に事前構築されたより多くのアイテムを含むアプリの更新を公開する予定ですが、ユーザーのお気に入りを維持したいと考えています。同様に、このバージョンでは、コア データ モデルにいくつかの変更が加えられます (「アイテム」エンティティにいくつかの新しいプロパティが必要です)。アイテムの新しいセットは、古いアイテムのスーパーセットです (アプリの古いバージョンのアイテムは常に新しいバージョンになります)。
私はこれに多くの苦労をしてきましたが、これに対する解決策を見つけることができません。ユーザーのお気に入りを維持しながら、新しいプロパティをエンティティに導入するデータ モデルをアップグレードできます (いわゆる軽量移行を実行しますが、古いアイテムと新しいアイテムをマージすることはできません。一方、私は'新しい事前追加アイテムを取得できますが、お気に入り関連のデータは破棄されます。
ヒントはありますか?よろしくお願いします