0

Если NSFetchedResultsControllerDelegate обрабатывает обновление (например, удаление элемента) , и пользователь одновременно прокручивает UITableView.NSFetchedResultsController при обновлении при прокрутке

Что произойдет, если UITableView должен получить доступ к элементу запроса на выборку, который удаляется? Должен ли я проверить это на cellForRowAtIndexPath и как?

Или это невозможно?

+0

Проведя некоторое тестирование, кажется, что необходимо заблокировать NSManagedObjectContext NSFetchedResultsController, поэтому мы уверены, что он не обновляется, когда cellForRowAtIndexPath читает его. Кто-нибудь мог это подтвердить? – CodeFlakes

ответ

2

Это не проблема. Основные данные и представления таблиц справляются с этим.

Просто убедитесь, что вы обновили представление таблицы после того, как управляемые объекты были вставлены и/или удалены.

Самый простой способ - иметь вид таблицы reloadData в методе NSFetchedResultsControllerDelegate controllerDidChangeContent:.

Чтобы сделать более интересные вещи, такие как живые ряды на столе или вне его, проверьте код плиты котла в разделе «Типовое использование» раздела NSFetchedResultsControllerDelegate Protocol Reference.

+0

При использовании 'reloadData' будет работать, использование его в сочетании с' NSFetchedResultsController' является немного контрпродуктивным, поскольку это приведет к перезагрузке всех ячеек. Это дорогостоящая операция, особенно когда у вас есть таблицы, которые могут содержать сотни ячеек (например, чат-чаты). – alexgophermix

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