避免在NSManagedObject类别中重复代码

时间:2013-12-13 12:52:10

标签: ios objective-c core-data nsmanagedobject code-reuse

在我的实体模型中,我有一个顶级的“安装”实体,它具有子“卡”关系。我还有一个“人”实体,它与孩子有“卡”关系。

我编写了一些代码,用于对NSSet卡片进行排序以返回特定的子集(称为sortedCards),此功能可以在安装级别或人员级别执行。

例如,我希望能够致电:

NSArray *cards = [installation sortedCards];

以及:

NSArray *cards = [person sortedCards];

我应该把这段代码放在哪里,以免我在两个地方复制代码?我首先把它放在我创建的安装NSManagedObject类别中。但是如果我这样做,我还需要将代码复制到Person类别中。

我应该输入NSSet类别并调用[installation.cards sortedCards]和[person.cards sortedCards]吗?这也感觉不对。

任何帮助都非常感激。

邓肯

1 个答案:

答案 0 :(得分:0)

您应该将此方法放在NSSet类别中,因为类别用于扩展基本功能。如果你需要在不同的地方排序NSSet,它应该是NSSet类别的工作,而不是其他对象或类。