我有更新核心數據模型時執行一些輕量級遷移的應用程序。核心數據在輕量級遷移後執行操作
但是,我想在遷移發生後執行一些特定操作作爲一次性操作。
例如,我有兩個NSManagedObjects ...... 文件和DocumentLayout。目前,有除了由該應用尋找一個「documentName」在相應的對象相匹配的「layoutName」 文獻和DocumentLayout之間沒有關係。
這是效率低下的,所以我想在兩者之間創建一個真正的核心 - 數據關係,然後在發生遷移後,通過迭代和創建關係鏈接兩個對象。
我看過的代碼,如...
NSManagedObjectModel *destinationModel = [persistentStoreCoordinator managedObjectModel];
BOOL pscCompatibile = [destinationModel isConfiguration:nil compatibleWithStoreMetadata:sourceMetadata];
...檢查是否需要遷移,並做相應的工作,但我需要這是一個一次性的操作有可能,在該應用的生命週期,被存儲在文獻文檔不需要與DocumentLayout的關係,因此,如果這種操作的更新是對數據模型每次做出運行時,一個關係將被創建這不是必需的。
所以,我可以看看(比如說)VERSIONNUMBER標誌檢測這一點,只有一次運行操作和防止它每次運行,但是這似乎不優雅且容易出錯的應用程序。
那麼,有沒有一種方法,特定遷移後運行一次的操作,則不會再運行?
感謝您的鏈接。看起來沒有「簡單」的方法,除了監控代碼中的版本之外。很遺憾沒有從版本N的核心數據已經發生了特定的自動遷移......即被告知的方式,到版本N + 1,即使有多個遷移已經或正在發生。 – Fittoburst