Я много читал о Базовых Данных .. но что является эффективным способом подсчета по Entity-Type (как SQL может сделать с SELECT count (1) ...). Теперь я просто решил эту задачу, выбрав все с помощью NSFetchedResultsController
и получив счет NSArray
! Я уверен, что это не лучший способ ...
objective-c
core-data
erazorx
источник
источник
countForFetchRequest:error:
состояний,NSNotFound
возвращаемая в случае ошибки. В общем,NSError
обработка в соглашении Какао состоит в том, что значениеerr
не определено (и часто опасно), если не происходит ошибка.Чтобы было ясно, вы не учитываете сущности, но экземпляры конкретной сущности. (Чтобы буквально подсчитать объекты, попросите модель управляемого объекта подсчитать количество объектов.)
Для подсчета всех экземпляров данного объекта без извлечения всех данных используйте
-countForFetchRequest:
.Например:
источник
стриж
Довольно просто подсчитать общее количество экземпляров объекта в Базовых данных:
Я протестировал это в симуляторе с количеством объектов более 400 000, и результат был довольно быстрым (хотя и не мгновенным).
источник
Я просто добавлю это, чтобы сделать его еще более эффективным ... и поскольку это всего лишь счет, вам не нужно никакого значения свойства и, конечно, как в приведенном выше примере кода, вам также не нужны дочерние объекты.
Итак, код должен быть таким:
Надеюсь, поможет.
источник
Я считаю, что самый простой и эффективный способ подсчета объектов - установить
NSFetchRequest
тип результатаNSCountResultType
и выполнить его с помощьюNSManagedObjectContext countForFetchRequest:error:
метода.источник
Я написал простой служебный метод для Swift 3, чтобы получить количество объектов.
источник
В Свифт 3
источник
Это действительно так:
«Лодка» - это просто имя объекта на экране модели данных:
Что такое глобальный
yourContainer
?Чтобы использовать основные данные, в какой-то момент в вашем приложении, только один раз, вы просто идете
где «материал» - это просто имя файла модели данных.
У тебя просто есть синглтон для этого,
Так из любого места в приложении
твой контейнер,
Таким образом, на практике, чтобы подсчитать любую сущность, это просто
источник
Если вы хотите найти число для конкретной предикатной выборки, я считаю, что это лучший способ:
источник