【问题标题】:Delete relationship and object from context in NSManagedObject deinit从 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 而不是单独手动删除?

【问题讨论】:

    标签: ios swift core-data nsmanagedobject


    【解决方案1】:

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

    【讨论】:

    • 我在谷歌上搜索并尝试了很多东西,解决方案很简单......非常感谢。
    猜你喜欢
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2013-10-28
    • 2011-09-14
    相关资源
    最近更新 更多