Не было изменено информации раздела, хотя это изменение приводит к вызову controllerDidChangeContent tableView.reloadData () и, в свою очередь, к вызову numberOfSections - PullRequest
0 голосов
/ 05 ноября 2018

Это очень странная ситуация использования NSFetchedResultsController с основными данными в разработке для iOS от Swift.

Сначала FetchedResultsController содержит только информацию об неизмененных разделах, но не измененную информацию о разделах, хотя это изменение вызывает controllerDidChangeContent вызов метода tableView.reloadData метод и в свою очередь вызывает numberOfSections метод.

Но последующее ручное обращение, например, в viewWillAppear, FetchedResultsController приводит к правильному отображению измененной информации раздела вместе с другой неизменной информацией раздела.

Другими словами, извлеченное изменение атрибута, указанного в sectionNameKeyPath через cloudkit в фоновом контексте, было сохранено в viewContext, который, в свою очередь, сохранил его в постоянном контейнере. В ходе этого процесса был вызван controllerDidChangeContent и вызван tableView.reloadData. В этот момент в numberOfSections в файле fetchedResultsController.sections отсутствует информация об измененных разделах, которая содержит только информацию об неизмененных разделах. Я установил это имя атрибута в качестве дескриптора первой сортировки в запросе на выборку, связанном с fetchedResultsController.

Я не могу найти какой-либо ключ к нелогичности; любая мысль приветствуется.

1 Ответ

0 голосов
/ 06 ноября 2018

Проблема найдена !!! Благодарность Майклу за ответы на NSFetchedResultsController вызывает didChangeObject удалить вместо обновления

Причина - мой предикат, использующий интерполяцию строк для числового значения. После изменения использования предиката числа происходит волшебство. Спасибо сообществу Stackoverflow!

...