ページ

2010年6月2日水曜日

CoreData - Object ID(その2)モデルのバージョンを変える

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

モデルのバージョンを変えると Object ID は変化するのか?試してみた。


バージョンを追加後(v2)、createdを追加した。



マッピングモデルを追加し、現在のバージョンを先程追加したもの(v2)に設定する。

(参考)Cocoaの日々: CoreData - マイグレーション

ビルド後に実行してみる。

(なお実行時にエラーが出る場合は、クリーニングしたのち再ビルドすると良い)。


結果は変わらず。これはまあ当然か。
1レコード追加してみる。
UUIDの部分(677CA547-...)は変わらないようだ。モデルのバージョンによって変化しないことがわかった。


SQLite DB の中身。
sqlite> select * from z_metadata;
1|677CA547-4D80-417A-8810-70847FB0375D|bplist00?
_NSStoreModelVersionIdentifiers_NSPersistenceFrameworkVersion_NSStoreModelVersionHashes[NSStoreType_ NSStoreModelVersionHashesVersion__NSAutoVacuumLevel???

メタ情報に変化はないようだ。最初のカラム名に Version とついていたので、レコードが追加されると思ったがそうはならないようだ。


サンプル:
CoreDataObjectID at 2010-06-02 from xcatsan's SampleCode - GitHub