Почему controllerDidChangeContent не вызывается? - PullRequest
3 голосов
/ 22 февраля 2012

Вот простой сценарий: при условии, что у меня есть два объекта Core Data: A и B с отношением один ко многим. (A может указывать на многие B). При создании NSFetchedResultsController выборки всех A объектов изменение свойства любого A объекта вызовет controllerDidChangeContent метод делегата. Однако изменение свойства объекта B не вызовет этот метод. (хотя на измененный объект B ссылается один из объектов A)

Есть идеи, почему?

1 Ответ

8 голосов
/ 22 февраля 2012

Это заняло некоторое время, чтобы обдумать это.Контроллер полученных результатов оценивает изменения контекста своего управляемого объекта.Эти изменения запускают методы делегата контроллера результатов, только если они соответствуют критериям, установленным для его выборки.Это включает в себя сопоставление условий предиката.

Если ваш контроллер выбирает объекты типа A, он будет реагировать на изменения объектов типа B только в том случае, если эти изменения в B влияют на то, что находится в A (и соответствуют условиям предиката abd, возможно, дескрипторам сортировкиа также).

Можете ли вы показать предикат в вашем вопросе выше?Можете ли вы показать отношения между А и В?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...