Eu li muito sobre o Core Data ... mas qual é uma maneira eficiente de fazer uma contagem por um tipo de entidade (como o SQL pode fazer com o SELECT count (1) ...). Agora acabei de resolver esta tarefa selecionando todos com NSFetchedResultsController
e obtendo a contagem do NSArray
! Tenho certeza de que essa não é a melhor maneira ...
objective-c
core-data
erazorx
fonte
fonte
countForFetchRequest:error:
estadosNSNotFound
retornados em caso de erro. Em geral, oNSError
manuseio na convenção de cacau é que o valor deerr
é indefinido (e geralmente perigoso) se nenhum erro ocorrer.Para ser claro, você não está contando entidades, mas instâncias de uma entidade específica. (Para contar literalmente as entidades, solicite ao modelo de objeto gerenciado a contagem de suas entidades.)
Para contar todas as instâncias de uma determinada entidade sem buscar todos os dados, use
-countForFetchRequest:
.Por exemplo:
fonte
Rápido
É bastante fácil obter uma contagem do número total de instâncias de uma entidade no Core Data:
Eu testei isso no simulador com uma contagem de mais de 400.000 objetos e o resultado foi bastante rápido (embora não instantâneo).
fonte
Vou acrescentar isso para torná-lo ainda mais eficiente ... e, como é apenas uma contagem, você realmente não precisa de nenhum valor de propriedade e, certamente, como um dos exemplos de código acima, também não precisa de subentidades.
Portanto, o código deve ser assim:
Espero que ajude.
fonte
Acredito que a maneira mais fácil e eficiente de contar objetos é definir o
NSFetchRequest
tipo de resultadoNSCountResultType
e executá-lo com oNSManagedObjectContext countForFetchRequest:error:
métodofonte
Eu escrevi um método utilitário simples para o Swift 3 buscar a contagem dos objetos.
fonte
Em Swift 3
fonte
É realmente apenas isso:
"Barco" é apenas o nome da entidade na tela do seu modelo de dados:
O que é global
yourContainer
?Para usar os dados principais, em algum momento do seu aplicativo, apenas uma vez, basta acessar
onde "material" é simplesmente o nome do arquivo do modelo de dados.
Você simplesmente teria um singleton para isso,
Então, de qualquer lugar do aplicativo
é o seu contêiner,
Portanto, na prática, para obter a contagem de qualquer entidade, é apenas
fonte
Se você deseja encontrar a contagem para busca predicada específica, acredito que seja a melhor maneira:
fonte