问题描述
在NSManagedObjectContextObjectsDidChangeNotification
通知中,有时我会得到NSRefreshedObjectsKey
键.
In a NSManagedObjectContextObjectsDidChangeNotification
notification, I sometimes get the NSRefreshedObjectsKey
key.
我了解刷新的对象是从持久性存储/缓存中新获取的对象.
I understand refreshed objects to be a new fetch of the object from the persistent store/cache.
什么原因导致通知随后返回刷新的对象?对于插入,更新,删除等,这很明显,但是我必须对对象执行什么操作才能使其出现在NSRefreshedObjectsKey
键中?例如.是只是通过某种方式(将相同的值写入相同的键)进行了触摸?
What causes the notification to return refreshed objects then? For inserted, updated, deleted, etc it is obvious, but what must I do to an object for it to appear in the NSRefreshedObjectsKey
key? E.g. is it that it may have simply been touched in some way (same values written to same keys)?
推荐答案
如果调用'-(void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag'在对象上,该对象将包含在刷新的对象中.
if you call '- (void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag' on an object, that object wud be included in refreshed objects.
我们使用了多个线程管理对象上下文,并且在合并bg上下文中的更改之前,我们使用"existingObject"实现所有已更改的对象.这也会导致这些对象被包括在内"NSRefreshedObjectsKey"键.
we use multiple threaded managedobject contexts, and before merging the changes from bg context,we realize all changed objects using 'existingObject'. This also causes these objects to be includedfor 'NSRefreshedObjectsKey' key.
这篇关于NSRefreshedObjectsKey的目的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!