2016-01-20 2 views
0

Мне нужно считать нет. объектов из коллекции по основным данным, которые удовлетворяют определенным критериям.Fetch и локальный фильтр NSArray или выполнить fetchRequest несколько раз

(например, число сотрудников с отдельными отделами).

Есть два пути решения моей проблемы:

  • (1) Извлекает коллекцию только один запрос и фильтровать массив локально для каждого отдела с использованием NSPredicate

  • (2) выполнить несколько NSFetchedRequests непосредственно на данных

Вопрос является белый ич решение будет быстрым и занимает минимум объем памяти данного это только для приборов цели и не имеет никакого значения в приложении в терминах behavior/UI.

Счетчик Вопрос: Если (1) - который лучший способ фильтрации массива? ручной цикл и подсчет или NSPredicate?

P.S:

a. Мне известны названия отделов. (его фактически перечисление)

b. сбор мал - будет не более 50

+2

Почему вы не можете запрашивать основные данные для выполнения всей работы? Каковы сущности, отношения и точный вопрос, на который вы пытаетесь ответить? – Avi

ответ

0

1 является самым быстрым и занимает большую часть памяти. 2 будет использовать наименьшую память, но может занять больше времени.

Однако это не всегда так. В случае, если ваше количество индивидуальных запросов на выборку будет содержать многие из тех же наборов данных сотрудников, что и другие запросы на выборку, тоже может быть наоборот. Но поскольку вы выбираете отделы, это не так.

Для небольшой коллекции это может быть не так уж и важно.

Подсчет вопроса: Это тоже зависит. Тем не менее, я бы пошел на предикат, поскольку это спасение для будущего использования, если коллекция растет.

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