从 NSManagedObject deinit 的上下文中删除关系和对象
Posted
技术标签:
【中文标题】从 NSManagedObject deinit 的上下文中删除关系和对象【英文标题】:Delete relationship and object from context in NSManagedObject deinit 【发布时间】:2016-01-23 08:49:03 【问题描述】:我有一个NSManagedObject
,它的关系看起来像这样:
class Foo: NSManagedObject
let context = (UIApplication.sharedApplication().delegate as! AppDelegate).model.context
@NSManaged var something: NSSet
// Some setup etc.
当我从上下文中删除这个对象时,我也想删除 something
并尝试在 Foo
类中使用 deinit
这样做:
deinit
print(something.count) // prints 0
something.forEach context.deleteObject($0)
当我删除Foo
的实例时,deinit
将被调用,但在调用deinit
之前不知何故与something
的关系丢失了。有没有办法使用deinit
删除something
而不是单独手动删除?
【问题讨论】:
【参考方案1】:这就是关系上的级联删除规则的用途。在 Xcode 的模型视图中设置它。
【讨论】:
我在谷歌上搜索并尝试了很多东西,解决方案很简单......非常感谢。以上是关于从 NSManagedObject deinit 的上下文中删除关系和对象的主要内容,如果未能解决你的问题,请参考以下文章
从内存中删除 UIView 时,快速 deinit 方法不起作用