Интересно, когда NSFetchedResultsChangeUpdate
изменение типа в controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
методе пройдено?
Я создал NSFetchedResultsController
с ненулевым sectionNameKeyPath
и запросом выборки с sortDescriptor
. Добавлено несколько объектов, которые соответствуют предикату извлеченного запроса. Затем я попробовал как изменить свойство сортировки, так и свойство sectionNameKeyPath
одного из этих объектов. На самом деле все работало нормально: измененный объект перемещался вокруг tableView, НО каждый раз, когда я получал NSFetchedResultsChangeMove
тип изменения! Изменение других реквизитов (не используемых для сортировки или разделов) этого объекта вообще не вызывало controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
!
Причина, по которой меня интересует NSFetchedResultsChangeUpdate
, заключается в том, что я хочу, чтобы NSFetchedResultsController
уведомлял меня, когда определенное свойство уже извлеченного объекта изменяется в границах, соответствующих NSFetchedResultsController.fetchRequest.predicate
. Например, предикат сопоставляет объект определенной сущности с prop == 1 OR prop == 2
. Но я также хочу получать уведомления, когда один из таких совпадающих объектов меняет значение prop
с 1 на 2.
Просто не хочу создавать два NSFetchedResultsController
с, так как я считаю, что есть более элегантный способ. + NSFetchedResultsChangeUpdate
изменение типа - единственная загадка, которая до сих пор не раскрыта для меня о NSFetchedResultsController
- никогда ее не поймала.