【发布时间】:2025-08-15 14:50:02
【问题描述】:
在我的实体模型中,我有一个*“安装”实体,它有一个子“卡片”关系。我还有一个“Person”实体,它有一个子“卡片”关系。
我编写了一些代码,对卡片的 NSSet 进行排序以返回特定的子集(称为 sortedCards),该函数可以在安装级别或人员级别执行。
例如,我希望能够调用:
NSArray *cards = [installation sortedCards];
还有:
NSArray *cards = [person sortedCards];
我应该把这段代码放在哪里,这样我就不会在两个地方复制代码?我首先将它放在我创建的 Installation NSManagedObject 类别中。但如果我这样做,我还需要将代码复制到 Person 类别中。
我应该放入一个 NSSet 类别并调用 [installation.cards sortedCards] 和 [person.cards sortedCards] 吗?感觉也不对。
非常感谢任何帮助。
邓肯
【问题讨论】:
-
您可以使用相同的 NSSet 类别。您还可以使用该方法创建一个抽象的 NSManagedObject 子类(如 MySortingManagedObject),然后让您的实体子类化它。
-
放弃类别 %#*& 并使用子类。因为这就是你想要的,一个子类。请参阅mogenerator 了解如何简化此操作。
标签: ios objective-c core-data nsmanagedobject code-reuse