Ваш запрос на выборку имеет свойство с именем fetchBatchSize
, которое сообщает вашему запросу на выборку только для получения данных в пакетах.Это означает, что для пакета размером 20 в память загружаются только первые 20 элементов.Когда пользователь прокручивает последние 20, автоматически загружаются еще 20 элементов и т. Д.
Кроме того, Apple выпускает класс NSFetchedResultsController
, предназначенный для управления представлением и редактированием ваших данных.(он лучше всего работает с табличными представлениями, но, конечно, может работать с другими видами контроллеров представлений).Он обрабатывает множество других оптимизаций для вас (такие как пакетное извлечение, управление памятью и т. Д.) И, как таковая, предлагает гораздо лучшую производительность, чем вы сами создавали, инициировали и управляли вашими запросами на выборку.