【问题标题】:Extending Core Data generated NSManagedObject classes扩展核心数据生成的 NSManagedObject 类
【发布时间】: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


【解决方案1】:

既然您已经在我的question 上发布了您的问题作为答案, 我想我应该回答你的问题:)

Mogenerator 看起来不错,试试看。

您建议的类别方式也是一个不错的选择。

事实上,这里有一个link,它准确地解释了如何这样做。

【讨论】:

    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多