我有一对One-to-Many关系的核心数据实体。
Department <-(optional) (delete rule: Cascade) (optional)->> Item
Item <-(optional) (delete rule: Nullify) (optional)->> Department
Item
是一个类似树节点的实体,它也与自身有关系。树可以变得非常大(根分支中超过10,000个节点)。
有一个父背景NSManagedObjectContext
和一个主要队列作为孩子。
为了让删除Items
感觉更快,我将主要队列MOC的propagatesDeletesAtEndOfEvent
设置为false
。 (当应用程序Resigned Active时,将保存更改。)不幸的是,当保存主队列MOC时会出现错误消息:
验证恢复尝试FAILED with Error Domain = NSCocoaErrorDomain Code = 1600 ...
如果propagatesDeletesAtEndOfEvent
是默认true
,则没有错误。
我的删除代码看起来像这样,没什么特别的:
department.removeFromItems(items as NSSet) // Optional. Also tried without this line.
for i in items {
self.managedObjectContext!.delete(i)
}
我很少谈到propagatesDeletesAtEndOfEvent
的用法。任何错误的例子或解释都将不胜感激。
这是a related question。但它与propagatesDeletesAtEndOfEvent
属性无关。