从 NSManagedObject deinit 的上下文中删除关系和对象

Delete relationship and object from context in NSManagedObject deinit

我有一个 NSManagedObject 与这样的多对多关系:

class Foo: NSManagedObject {

    let context = (UIApplication.sharedApplication().delegate as! AppDelegate).model.context

    @NSManaged var something: NSSet

    // Some setup etc.
}

当我从上下文中删除这个对象时,我也想删除 something 并尝试在 class [=15= 中使用 deinit ]:

deinit {
    print(something.count) // prints 0

    something.forEach { context.deleteObject([=11=]) }
}

当我删除 Foo 的一个实例时,deinit 将被调用,但是在 deinit 被调用之前,与 something 的关系不知何故丢失了。有没有办法使用 deinit 删除 something 而不是单独手动删除它?

这就是关系级联删除规则的用途。在Xcode.

中的模型视图中设置