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

时间:2016-01-23 08:49:04

标签: ios swift core-data nsmanagedobject

我有NSManagedObject,其中有很多关系,如下所示:

class Foo: NSManagedObject {

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

    @NSManaged var something: NSSet

    // Some setup etc.
}

当我从上下文中删除此对象时,我也想删除something并尝试使用deinit课程中的Foo进行删除:

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

    something.forEach { context.deleteObject($0) }
}

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

1 个答案:

答案 0 :(得分:1)

这就是关系中的级联删除规则。在Xcode的模型视图中设置它。