Cocoaメモ

Appleプラットフォームでの開発メモ

Lightweight MigrationのManaged Object Modelは最新の一つだけ保持すればよいらしい

Core Dataで、Lightweight Migration で済む場合、アプリが持つManaged Object Modelは最新の一つだけでよいようです。

つまり、次のように、複数のモデルを持つ必要がありません。

f:id:nakiwo:20210514013334p:plain:w300

xcdatamodeldに最新のバージョンのxcdatamodelだけを持つか、単純にxcdatamodelを単独で持てばよいでしょう。

Model Caching

developer.apple.com (18:17あたりから)

iOS 9から、Core Dataのsqliteファイルにモデル情報が保存されるようになっているとのこと。Lightweight Migration時は、sqliteファイルに入っているmodelがsourceとして利用されるので、アプリには最新のdestination modelだけがあればよいわけです。

sqliteファイルを覗いてみたところ、Z_METADATAというテーブルにblobでbplistが入ってました。おそらく、ManagedObjectModelをアーカイブしたものでしょう。