2016-01-11 34 views
0

對於我正在開發的應用程序,我需要永久引用對象存儲中的對象。我用自己的NSManagedObjectID對象要做到這一點,他們在存在的情況下調用[NSManagedObjectContext obtainPermanentIDsForObjects:error:]後。遷移商店時CoreData永久標識更改

然而,當我從舊版本的車型到一個更新的一個遷移存儲,這些ID似乎一下子涉及到完全不同的對象。

在商店遷移後,永久性ID是否有任何原因會導致永久性ID丟失?據我所知from the docs,這些ID應該是永久性的,我不明白爲什麼一個非常小的模型遷移(爲對象添加屬性)會導致「永久」ID突然引用完全不同的對象。

回答

0

我仍然不知道爲什麼CoreData導致對象ID的更改上遷移,但我有一個簡單的解決方法:

我對象

每個人都有在MOC文件的屬性,「permanentId」。當我生成NSManagedObject子類時,我讓它們從一個自定義子類下降,而不是直接從NSManagedObject。該子類自動創建一個NSUUID,並在首次創建對象時對其進行設置。

這當然不是最優的,但它可以完成賦予對象唯一ID的工作。