我认为将 NSManagedObject
的自定义代码放在子类的类别中是一种常见的做法,因为在编辑模型时 Xcode 会覆盖您生成的子类。我只是想确认一下。我见过一些例子,人们说将类别与已经在类层次结构中实现的方法结合起来是不好的。我不确定这是否仅适用于具有实际类别的类具有已实现方法的情况或在所有情况下。
重写类别中的方法的问题是您不能像通常使用 [super doSomething]
那样调用原始实现。通常,当您覆盖一个方法时,您仍然希望能够在执行原始实现之前和/或之后调用原始实现做一些额外的事情。
一个相当干净的解决方案是让 Xcode 生成您不直接接触的 NSManagedObject 子类。相反,为每个 Xcode 生成的 NSManagedObject 子类创建另一个自定义子类,您可以对其进行编辑而不必担心它被覆盖。
Wolf Rentzsch 的 mogenerator本质上使用了这种方法,并且另外生成了一些 Xcode 没有生成的方便的方法。可能值得一试,因为它可能是一个有用的工具,但 mogenerator 不是你想做的事情所必需的。
关于objective-c - 带有类别的 NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297101/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |