Почему мой делегат NSFetchedResultsController прекращает работу, когда я добавляю NSPredicate? - PullRequest
2 голосов
/ 17 марта 2012

У меня есть NSFetchedResultsController, отображающий «места» в табличном представлении, но когда я обновляю набор мест, которые должны отображаться в другом контроллере представления, мой FRC не обновляет табличное представление.

Это общая проблема.Мой конкретный случай, кажется, вращается вокруг NSPredicate поддержки моего FRC, потому что когда я удаляю NSPredicate (и просто получаю все мест), все работает нормально.

Мой запрос

@"ANY photos.isFavorite == %@", [NSNumber numberWithBool:YES]

мест имеют отношение «один ко многим» с фотографиями (я работаю через CS193P).Возможно, мой FRC не настроен для наблюдения за изменениями в связанной таблице или чем-то подобном?

Немного дополнительной информации о моей ситуации:

  • Мои обновления основных данных и запросы кажутся нормальными,моя таблица «мест» всегда корректна при первой загрузке приложения.
  • Мой FRC обновляет строк, которые уже присутствуют при загрузке приложения.Он просто не будет вставлять новые строки / разделы во время выполнения.
  • Я использую только один MOC.
  • My sectionNameKeyPath is not установлен впереходный атрибут.
  • My cacheName имеет значение nil.

Ответы [ 3 ]

4 голосов
/ 17 марта 2012

Я не знаю, если это ваш случай, но я все равно отправлю.Возможно, это может быть допустимый обходной путь.

NSFetchedResultsController ловушка

Надеюсь, это поможет.

0 голосов
/ 17 марта 2012

Попробуйте этот предикат вместо?

@"%@ IN photos.isFavorite", [NSNumber numberWithBool:YES]
0 голосов
/ 17 марта 2012
  • Вы пытались протестировать более простой предикат, например, используя отношение «один к одному» вместо фотографий?

  • «Мой FRC не обновляет табличное представление» - Вы используете -controllerDidChangeContent:? Вы убедились, что вам не звонят? Я видел, что вопреки документации, вызов reloadData для tableView из этого метода небезопасен, так как метод может быть вызван на вторичном, а не основном потоке.

  • Выполняете ли вы все операции, связанные с MOC, в одном и том же (основном?) Потоке?

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