1

На мой взгляд, у меня есть представление таблицы вместе с сегментированным элементом управления. Вид таблицы получает свои данные из NSFetchedResultsController.Использование UISegmentedControl для переключения NSFetchedResultsController

При нажатии сегментарного элемента управления я пытаюсь перейти на другой NSFetchedResultsController (который использует другой предикат, дескриптор сортировки и даже другой тип объекта).

Что-то вроде предлагаемого в одном из ответов на вопрос this question.

Я также набрал собственное перечисление, чтобы отслеживать, в каком состоянии находится представление таблицы (какой сегмент выбран в данный момент).

Проблема заключается в том, что когда представление таблицы перезагружает свои данные, я получаю «NSInternalInconsistencyException», поскольку количество разделов и/или количество строк изменилось с X на Y, но «(вставлено 0, 0 удалено)».

Мои вопросы:

  • ли вообще возможно решить эту проблему так, как я пытаюсь?
  • Где должно начинаться beginUpdates, endUpdates и reloadData (по отношению к переключателю NSFetchedResultsController)?
  • Кто-нибудь с лучшими решениями этой проблемы?

Заранее благодарен!

+0

Reson для NSInter .. приведены в журнале, дают, что также. – Ishu

+0

Привет! Я временно отказался от концепции с несколькими NSFetchedResultsControllers, должен был двигаться вперед. Как можно скорее (надеюсь, рано утром завтра), я попытаюсь снова создать ту же ошибку :) –

ответ

2

Если вы делаете ленивую загрузку FRC, то убиваете FRC и вызываете reloadData в UITableView, чтобы получить новый FRC с новыми дескрипторами предикатов/сортировки, которые будут использоваться.

Это то же самое, что и при использовании UISearchBar как ответил this question

+0

Спасибо! Думаю, я решил это, используя ваш совет вместе с ответами в другом вопросе :) –

Смежные вопросы