我有一个后台线程,它执行后台更新,设置/覆盖几种NSManagedObjects上的字段。所有子类都包含lastModified属性,该属性在由后台任务处理时始终会更新。
我的问题是,当我这样做时,所有被后台线程命中的实体也会触发controllerWillChangeContent / controllerDidChangeContent。即使什么都没有真正改变。
如果我碰到了一个setter(例如,使用NSString,但内容实际上并未更改),它是否仍会触发更新,或者CoreDate是否足够聪明,可以忽略此设置?
通知resultControllers更改时,是否有可能以某种方式标记不包含的属性?
您可以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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句