Я представляю содержимое таблицы, используя NSFetchedResultsController, у которого есть предикат:
[NSPredicate predicateWithFormat:@"visible == %@", [NSNumber numberWithBool:YES]]
В фоновом потоке с использованием отдельного NSManagedObjectContext я обновляю несколько объектов и изменяю их значение visible от NO до YES. Сохранить, объединить изменения основного потока NSManagedObjectContext. Но NSFetchedResultsController fetchedObjects не изменяется. Кроме того, контроллер не вызывает -controller:didChangeObject:... для делегата. Если сущности обновляются в основном потоке одинаковым образом (мое тестовое приложение вызывает тот же метод), все работает так, как ожидалось.
Также Notification NSUpdatedObjectsKey содержит эти объекты.
В настоящее время единственными решениями, которые я нашел, является вызов для каждого из объектов NSUpdatedObjectsKey:
NSManagedObjectContext *context = ... // main thread context
[context existingObjectWithID:[object objectID] error:nil]
Эта проблема связана только с обновленными объектами, которые ранее не соответствовали предикату.
Я пропустил что-то очевидное?