我正在使用NSFetchedResultsController具有谓词的表视图内容:
[NSPredicate predicateWithFormat:@"visible == %@", [NSNumber numberWithBool:YES]]
Run Code Online (Sandbox Code Playgroud)
在后台线程使用单独NSManagedObjectContext我更新几个实体并将其visible值更改NO为YES.保存,合并主线程中的更改NSManagedObjectContext.但是,NSFetchedResultsController的fetchedObjects没有改变.控制器也不会调用-controller:didChangeObject:...委托.如果实体在主线程上以相同的方式更新(我的测试应用程序调用相同的方法),一切都按预期工作.
通知也NSUpdatedObjectsKey包含这些对象.
目前我发现的唯一解决方案是呼叫每个NSUpdatedObjectsKey实体:
NSManagedObjectContext *context = ... // main thread context
[context existingObjectWithID:[object objectID] error:nil]
Run Code Online (Sandbox Code Playgroud)
此问题仅适用于先前与谓词不匹配的更新对象.
我错过了一些明显的东西吗