我有一个后台线程执行后台更新,设置/覆盖几种NSManagedObjects上的字段。所有子类都包含lastModified属性,该属性在后台任务处理时始终会更新。
我的问题是,当我这样做时,被后台线程命中的所有实体也将触发controllerWillChangeContent / controllerDidChangeContent。即使没有真正改变。
如果我点击了一个setter(例如有一个NSString,但内容没有真正改变,它是否仍然会触发更新,或者CoreDate是否足够聪明以忽略它?
在通知对resultsControllers的更改时,是否有可能以某种方式标记不包含的属性?
答案 0 :(得分:1)
您可以使用setPrimitiveValue:forKey:
更改NSManagedObject而不发送任何KVO通知(触发nsfetchedresultscontroller更新)
例如
[self setPrimitiveValue:[NSDate date] forKey:@"lastModified"]