2014-01-16 41 views
0

我想更新當前使用直SQLite來使用核心數據的應用程序。在當前的數據庫中,有幾種多對多的關係需要遷移。這是通過在「實體」表中創建一個索引/ ID列並使用這些ID引用每一行來設置的。iOS - 從SQLite遷移到核心數據在發佈的應用程序

由於核心數據處理實體之間的索引和關係,當我複製數據時如何重建這些關係?我是否必須添加ID屬性才能維護原始參考?有沒有更好的辦法?

另外,這是我可以使用遷移管理器的東西嗎?

謝謝!

+0

對我來說,核心數據似乎無法處理多對多的關係。 – karim

+0

核心數據處理多對多就好了;它和你在一個直接的數據庫情況下完全一樣。 –

回答

1

讓我們假設你正在爲數據庫執行此操作,其中實體Photo和Tag之間存在多對多關係。並且您創建了相同的核心數據模型。

所以你正在迭代舊數據庫的照片。你會得到下一張照片和所有的標籤,而且你已經有了一些中間格式。然後爲每個標籤創建照片管理對象和標籤管理對象。您的Photo對象將具有tags屬性,表示與標記實體的多對多關係。從您創建的標籤創建一個NSSet,只需撥打[photo addTags:tags];即可。核心數據將關注從每個標籤到照片的反向關係。

不幸的是,您無法爲此使用遷移管理器。它用於在Core Data模型之間進行手動遷移。

+0

完美。我想補充一點,它有助於將此視爲*導入*到核心數據而不是遷移。 –