我有兩個類,Mammals
和Fish
,它們都從一般超類Animals
繼承。我想使用核心數據存儲我所有的Mammals
和Fish
,所以我已經使它們都成爲NSManagedObject的子類。所以,當我想要得到我所有的Mammals
和Fish
時,我只是執行一對夫婦獲取請求。如何讓兩個具有相同超類的NSManagedObject類
我的問題是如何處理Animals
超類。
- 它的屬性和方法顯然是由兩個子類使用的,所以它也應該是NSManagedObject呢?
- 如果是這樣,那麼
Mammals
和Fish
甚至需要顯式的NSManagedObject子類,因爲它們已經子類Animals
? - 這種方法是否有缺陷?
對不起,如果這是一個超基本的問題,特別是如果答案只是「是;否」。其中一個答案here警告不要在數據模型中使用繼承,因此我擔心。
感謝您的回覆!所以,除了對模型做出未來的改變之外,@shosti在鏈接問題中的警告在這裏不是一個擔心? (它是:「如果你使用SQL後端,不要在你的數據模型中使用繼承,由於SQL後端的實現,它具有可怕的性能和空間特性」) – Rogare
它可能取決於最終大小你的模型。我以前從未見過這個建議。我可能需要觀看視頻:-)但是我確實有幾個基於CD的項目,它們將繼承應用到三層,對於超過1000年的對象,性能不是問題。當你用超類目的地描述與關係類的根類時,它可能很有用,例如,你可能有一個叫做animalsThatIE的一對多關係,帶有一個動物的目的地,即熊 - >鱒魚,兔子,松鼠,小龍蝦 –
好吧,知道。謝謝! – Rogare