Каков наиболее эффективный способ использования Core Data? - PullRequest
0 голосов
/ 22 декабря 2010

Я занимаюсь разработкой приложения для iPad с использованием Core Data и надеялся, что кто-нибудь сможет что-то прояснить в Core Data.

Сейчас я заполняю свою таблицу, делая запрос на выборку для всех моих данных в viewDidLoad. Я бы предпочел делать отдельные запросы на выборку в моем tableView:cellForRowAtIndexPath:. Может кто-нибудь сказать мне, что является более эффективным и почему? Другими словами, гораздо менее эффективно делать множество маленьких запросов, чем один большой?

1 Ответ

4 голосов
/ 22 декабря 2010

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

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

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