2013-03-14 53 views
4

我正在使用核心數據來存儲對象。我有一個NSManagedObject人和一個NSObject人。它們都具有相同的屬性。 NSObject有一些方法。NSManagedObject;保持或加載到一個自定義的NSObject?

現在,我搜索Bob的核心數據。然後,我把那個NSManagedObject鮑勃,並將所有的屬性複製到NSObject鮑勃,做我需要的東西。

這是否有意義,還是應該在NSManagedObject中創建所需的方法? NSManagedObject可以和NSObject一樣對待嗎?

+4

這實際上是一個深刻的問題。大多數人只是直接使用NSManagedObject,但是如果你想開發解耦和靈活的代碼,你需要將核心數據抽象到某種持久層的後面,並在整個應用程序的其他部分中使用常規的NSObject域對象。 – 2013-03-14 19:40:51

回答

8

一個值得鼓勵的方式是構建一個NSManagedObject子類的類別並在此類中實現您的自定義方法。這樣你可以通過Xcode重新創建你的NSManagedObject子類,如果你的模式改變了,你的類別保持不變並且不受影響。

參考:例如關於核心數據的Paul Hegarty's/Stanfords iOS課程

0

是的,您可以像使用常規對象那樣使用NSManagedObject--它不僅用於數據存儲訪問,還可以直接用作模型對象。在像這樣的不同類的實例之間來回複製數據是很多額外的工作,沒有任何好處。

由於您要添加自定義代碼,因此我需要高度鼓勵您使用mogenerator來生成您的NSManagedObject子類。如果/當您需要更改模型時,它會使您的自定義代碼更加容易。

相關問題