NSFetchedResultsController отслеживание изменений через отношения - PullRequest
3 голосов
/ 10 февраля 2011

У меня есть модель с двумя объектами, связанными отношениями «один к одному». Я хочу отобразить в TableView все объекты EntityA, где entityB.myIntAttribute равен заданному значению. Это работает, когда я создаю FetchRequest для EntityA с предикатом @ "entityB.myIntAttribute == aValue".

Моя проблема с отслеживанием изменений. Я установил NSFetchedResultsControllerDelegate делегат на NSFetchedResultsController, связанный с предыдущим FetchRequest. Этот делегат работает, потому что он получает уведомление об удалении, если я устанавливаю новую сущность B, которая не соответствует предикату для одного из результатов. Но если я напрямую изменю значение myIntAttribute в объекте entityB, чтобы результат предиката изменился, мой делегат не будет уведомлен об этом изменении.

Работает ли NSFetchedResultsController для отслеживания изменений с предикатом, который пересекает отношения? Как FetchedResultController может повторно вычислить предикат после изменения атрибута отношения?

1 Ответ

0 голосов
/ 12 января 2012

Реализуете ли вы все следующие методы в вашем делегате:

- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...