我有一个后台线程,可以执行后台更新,设置/覆盖几种NSManagedObjects上的字段。所有子类都包含一个lastModified属性,该属性在由后台任务处理时始终会更新。
我的问题是,当我这样做时,所有被后台线程击中的实体也会触发controllerWillChangeContent / controllerDidChangeContent。即使什么都没有真正改变。
最佳答案
您可以使用setPrimitiveValue:forKey:
更改NSManagedObject而不发送任何KVO通知(这会触发nsfetchedresultscontroller更新)
例如
[self setPrimitiveValue:[NSDate date] forKey:@"lastModified"]
您可以在这里阅读更多有关这些的信息
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdAccessorMethods.html#//apple_ref/doc/uid/TP40002154-SW5