【发布时间】:2012-05-12 17:30:42
【问题描述】:
我第一次接触 Core Data,我想知道扩展 Xcode 为我的 NSManagedObject 实体生成的类的最佳实践是什么。
我看到了mogenerator,并且我也一直在使用与SUPER HAPPY EASY FETCHING IN CORE DATA 中建议的方法类似的方法。 所以我有三种类:
- EasyFetching 类别(只有一个类);
- 生成的 NSManagedObject 子类(即:_Entity);
- 具有一些自定义方法的自定义子类,例如查找所有非活动对象、清除对象的缓存等(即:实体)。
这种方法让我可以编写一些自定义代码,同时我可以重构我的核心数据实体并根据需要多次生成它。但是我也遇到了一些问题,比如无法为我的实体声明对象级方法(因为 NSManagedObjectContext 只知道我的 _Entity 类)。
现在我正在使用类别来扩展我的实体功能。这工作得更好,因为我可以有自定义对象级别的方法。我现在有三种类:
- EasyFetching 类别(因为它有很多我的所有自定义代码都使用的方法);
- 生成的 NSManagedObject 子类(即:Entity);
- 我的 NSManagedObject 实体的自定义类别(即:Entity+Custom.h)。
我的问题是:你会推荐什么?
提前感谢您的回答
【问题讨论】:
-
这基本上也是我一直在做的事情:为我的 Core Data 实体自定义类别以及一些额外的方法等。至于 EasyFetching 类别,我实际上使用的是基于此的东西 - github.com/halostatue/coredata-easyfetch - 这也有助于保持简单:)
-
似乎是目前的情况,在此确认:sunetos.com/items/2011/07/24/…
-
@piobyz 很高兴看到解释了所有替代方案,以便人们了解权衡。 IMO 唯一的任务是引用这个link,因为当你在做与核心数据相关的代码时,它也需要做很多工作。
标签: objective-c core-data categories nsmanagedobject mogenerator