扩展 NSManagedObject 的删除方法

Posted

技术标签:

【中文标题】扩展 NSManagedObject 的删除方法【英文标题】:Extending a NSManagedObject's delete method 【发布时间】:2012-05-10 09:56:54 【问题描述】:

我正在使用 CoreData,并且想知道是否可以扩展我的 NSManagedObjects 以执行自定义操作(例如删除属于此实例的文件)。

在我的例子中,我有几个 CoreData 实体,每个实体可能有一个文件夹或文件路径存储在一个属性中。如果实体被删除,我希望该实体自行删除引用的文件。

这种行为与“级联”删除规则结合使用会特别有用,因为删除实体会删除所有子实体及其文件。

如果没有这样的机制,我将为每个实体编写一个包含自定义删除方法的类别,包括可能有子实体的级联行为。

你会怎么做,我的问题有什么优雅的解决方案吗?之前有没有讨论过,我只是没有找到它?

非常感谢!

保罗

【问题讨论】:

【参考方案1】:

您可以在删除对象之前通过覆盖 NSManagedObject 子类中的 prepareForDeletion 方法进行额外的清理。

【讨论】:

完美,好像我在搜索错误的关键字。今天晚些时候我会试试的。

以上是关于扩展 NSManagedObject 的删除方法的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 核心数据 - 在 NSManagedObject 子类中使用删除方法后保存不成功

CoreData:NSManagedObject 扩展

删除模型类时中止方法错误

[NSManagedObject sayHello]:无法识别的选择器发送到实例 0x

当另一个模型正在使用该对象时,从核心数据中删除 NSManagedObject

NSManagedObject 上的 Swift 扩展