2013-12-13 22 views
0

在我的實體模型中,我有一個頂級的「安裝」實體,它具有子卡「關係」關係。我也有一個「人」的實體,它有一個兒童「卡」關係。避免在NSManagedObject類別中重複代碼

我已經寫了一些代碼,它將對NSSet卡進行排序以返回特定的子集(稱爲sortedCards),並且此功能可以在安裝級別或Person級別執行。

對於〔實施例,我希望能夠調用:

NSArray *cards = [installation sortedCards]; 

還有:

NSArray *cards = [person sortedCards]; 

我應該在哪裏把這個代碼,因此,我不復制代碼在兩個地方?我首先把它放在我創建的安裝NSManagedObject類別中。但是如果我這樣做,我需要將代碼複製到Person類別中。

我應該放入一個NSSet類別並致電[installation.cards sortedCards]和[person.cards sortedCards]?那也不覺得正確。

任何幫助非常感謝。

鄧肯

+1

您可以使用相同的NSSet類別。你也可以用該方法創建一個抽象的NSManagedObject子類(如MySortingManagedObject),然後讓你的實體繼承它的子類。 –

+0

消滅類別%#*&並使用子類。因爲這就是你想要的,一個子類。請參閱[mogenerator](https://github.com/rentzsch/mogenerator)以獲取更簡單的方法。 –

回答

0

你應該放在的NSSet類這種方法,因爲類別用於擴展基本功能。如果你需要在不同的地方對NSSet進行排序,它應該是NSSet類別的工作,而不是其他的對象或類別。