2012-05-03 273 views
4

我一直在处理核心数据,我想知道最佳做法是什么扩展Xcode为我的NSManagedObject实体生成的类。扩展核心数据生成NSManagedObject类

我看到了mogenerator,我也一直在使用类似于SUPER HAPPY EASY FETCHING IN CORE DATA中建议的方法。 所以我有三种类:

  • EasyFetching类别(只有一个类);
  • 生成的NSManagedObject子类(即:_Entity);
  • 自定义子类,包含一些自定义方法,如查找所有非活动对象,清除对象的缓存等(即:实体)。

这种方法让我做一些自定义代码,而我可以重构我的核心数据实体并根据需要多次生成它。但我也碰到过一些问题,例如不能为我的实体声明对象级别的方法(因为NSManagedObjectContext只知道我的_Entity类)。

现在我使用类别来扩展我的实体功能。而且这样做效果更好,因为我可以使用自定义对象级别的方法。我现在有三种类:

  • EasyFetching类别(因为它有很多方法,所有我的自定义代码使用);
  • 生成的NSManagedObject子类(即:实体);
  • 我的NSManagedObject实体的自定义类别(即:Entity + Custom.h)。

我的问题是:你会推荐什么?

预先感谢您的回答

+1

这基本上就是我一直在做的:我的Core Data实体的自定义类别和一些额外的方法等。至于EasyFetching类别,我实际上是使用基于此的东西 - https://github.com/halostatue/coredata-easyfetch - 这也有助于保持简单:) –

+1

似乎是目前状态的问题,在这里证实:http://www.sunetos.com/items/2011/07/24/how-to-use-custom-classes-with-core-data-without-fear/ –

+0

@piobyz很高兴看到所有替代解释所以人们理解这种权衡。海事组织唯一的任务是指这[链接](http://www.cimgf.com/2011/03/13/super-happy-easy-fetching-in-core-data/),因为它也需要很多当你在做核心数据相关的代码时工作。 –

回答

2

现在你已经张贴你的问题的答案在我的question, 我想我应该回答你的问题:)

Mogenerator不看坏,给它是一个尝试。

此外,您使用类别建议的方式也是一个不错的选择。

这里的Infact是一个link,正好解释了如何做。

相关问题