从 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.
中的模型视图中设置
我有一个 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.
中的模型视图中设置