Pergunta

I foram recentemente olhando para Core Data para o iPhone e eu tenho uma consulta que eu não tenha sido capaz de encontrar uma resposta para na literatura.

Vamos imaginar que eu tenho um usuário modelo de objeto com um para-muitos com um Compra objeto. Um usuário pode ter milhares de compras.

Todas as informações que tenho visto até agora parece sugerir que uma operação de busca realizada em toda essa relação voltaria um NSSet com todo o Compra objetos associados a um determinado usuário .

É claro que eu preferiria se havia alguma maneira de limitar o número de Compra objetos buscados por:

1) impor algum tipo de critérios (por exemplo, só compra mais de £ 1000 etc.); ou

2), apenas buscar em lotes se o acima não é possível.

É o acima possível? Estou apenas preocupado que com a memória limitada do iPhone que corro o risco de sobrecarregar-lo com milhares de objetos desnecessariamente obtida.

Agradecemos antecipadamente para quaisquer respostas.

Foi útil?

Solução

O meu entendimento é que quando você buscar objetos Usuário, a relação com seus objetos de compra será uma falha que só será carregado se acessado.
Em vez disso, você poderia buscar Compra objetos com um predicado que especifica o usuário (s) e cheque (s) em quaisquer outros critérios.

Dito isso, eu com certeza gostaria de testar os casos de uso realistas (em dispositivos) antes de gastar muito tempo com problemas de desempenho. A eficiência dos Dados iPhone e Core pode surpreendê-lo.

Outras dicas

  1. Use uma propriedade buscada
  2. Use NSFetchedResultsController

A resposta a estas e as perguntas que você terá ao lado são respondidas no core Data Guia de Programação para o iPhone.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top