Зачем использовать NSFetchedResultsController? - PullRequest
22 голосов
/ 17 сентября 2010

Базовые данные предоставляют метод "executeFetchRequest" в классе NSManagedObjectContext, который мы можем использовать для извлечения данных из таблиц и использования их любым способом.

Теперь есть другой способ, используя NSFetchedResultsController и предоставляя его UITableView для выборки и данных из таблиц.

Мои вопросы сейчас:

  • Какой путь быстрее? Я имею в виду производительность, какая лучше?

  • NSFetchedResultsController используется только с UITableViews?

  • Каковы плюсы и минусы NSFetchedResultsController.

  • И, наконец, «Почему мы используем NSFetchedResultsController», что делает его лучше, чем любой другой способ.

1 Ответ

40 голосов
/ 17 сентября 2010

И последнее, «Почему мы используем NSFetchedResultsController ", что вещь делает это лучше, чем любой другой способ.

Класс FRC предназначен для автоматической обработки всех накладных расходов, связанных с предоставлением сложных и динамических данных для таблиц.

Если все, что у вас есть, это простая таблица с одним разделом, данные которой никогда не меняются, то FRC не дает вам никаких преимуществ. Вы просто делаете один выбор, и все готово. Однако, если данные изменяются либо в пользовательском интерфейсе (пользователь перестраивает, удаляет или добавляет), либо с помощью кода (например, данные обновляются с сервера), FRC предоставляет механизмы для обработки всех этих постоянных изменений и обеспечения точного отражения в таблице. эти изменения.

Какой путь быстрее? Я имею в виду производительность, которая является лучше всего?

Нет большой разницы в производительности при использовании выборки или FRC, потому что они оба используют один и тот же механизм выборки для получения данных из постоянного хранилища. Если у вас сложные динамические данные, то использовать FRC быстрее, чем дублировать его функциональные возможности вручную.

Какие плюсы и минусы у NSFetchedResultsController.

Смотри выше.

Is NSFetchedResultsController только используется с UITableViews?

Да, это действительно полезно только для таблиц.

...