2014-10-30 179 views
0

我讀過一篇關於核心數據遷移的文章:http://www.objc.io/issue-4/core-data-migration.html。我不明白下面一行:核心數據遷移addAuthorsObject

[destinationInstance performSelector:@selector(addAuthorsObject:) withObject:author]; 

destinationInstance是一本書NSManagedObject,作者是一位作家NSManagedObject。它們是相關的(一本書可以有多個作者,一個作者可以寫多本書)。上面的代碼應該建立這種關係。但是,這個addAuthorsObject在哪裏:被聲明?我如何添加一個關係NSManagedObject到我自己的項目中的另一個NSManagedObject?

回答

1

您發佈的密碼與[destinationInstance addAuthorsObject:author]相同; addAuthorsObject:是一種由Core Data在運行時自動添加到您的NSManagedObject子類中的方法,因爲您聲明該對象具有一對多關係authors

因此addAuthorsObject:未被聲明;它是在架構加載時創建的。你不能看它,因爲它實際上並沒有寫在任何地方。

Xcode具有Core Data模式的圖形編輯器;你應該使用它來添加額外的對象,屬性和關係。那麼你可能想爲你的模型對象創建自定義子類,但實際上並不需要它。

+0

太棒了!這就是我誠實的想法。但我犯了一個愚蠢的錯誤。我忘了添加多對多關係(默認是一對一),而當我調用此運行時add-Object:方法時,Xcode拋出了一個異常。謝謝你,小夥伴。 – 2014-10-31 02:48:31