objective-c - 带有类别的 NSManagedObjects

标签 objective-c ios core-data categories nsmanagedobject

我相信将 NSManagedObject 的自定义代码放入子类的类别中是一种常见的做法,因为编辑模型时 Xcode 会覆盖生成的子类。我只是想确认这一点。我见过一些例子,人们说将类别与类层次结构中已经实现的方法结合起来是不好的。我不确定这是否仅适用于具有实际类别的类已实现该方法的情况或所有情况。

最佳答案

重写类别中的方法的问题在于,您无法像通常使用 [super doSomething] 那样调用原始实现。通常,当您重写方法时,您仍然希望能够调用原始实现,在执行原始实现之前和/或之后执行一些额外的操作。

一个相当干净的解决方案是让 Xcode 生成您不直接接触的 NSManagedObject 子类。相反,为每个 Xcode 生成的 NSManagedObject 子类创建另一个自定义子类,您可以对其进行编辑,而不必担心它被覆盖。

Wolf Rentzsch 的 mogenerator本质上使用了这种方法,并且另外生成了 Xcode 不生成的一些很好的便捷方法。可能值得一试,因为它可能是一个有用的工具,但 mogenerator 并不是完成您想要做的事情所必需的。

关于objective-c - 带有类别的 NSManagedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297101/

相关文章:

ios - 带有分页的 UICollectionView,每个单元格覆盖整个屏幕,拖动时发出但尚未转到下一个或上一个单元格

ios - 如何在调用fetch之前验证NSPredicate

ios - 将索引添加到 CoreData 多对多关系

objective-c - 核心数据委托(delegate)保存模式

ios - .csv 文件的 NSMutableArray 的格式内容

objective-c - View 在 iOS 4.3 模拟器中显示不正确

ios - 如何更改永远运行的 SKAction

ios - TACO 不会使用指定的 --device 参数远程构建 ios

iphone - 如何以编程方式播放默认电话铃声?

ios - 错误 : Cannot subscript a value of type '[String : Any]' with an index of type 'UIImagePickerController.InfoKey'