Pregunta

Recientemente he estado buscando Core Data para el iPhone y tengo una consulta que no he podido encontrar en la literatura.

Imaginemos que tengo un objeto modelo Usuario con una relación de muchos con un objeto Comprar . Un usuario puede tener miles de compras.

Toda la información que he visto hasta ahora parece sugerir que una operación de búsqueda realizada a través de esa relación devolverá un NSSet con todos los objetos Comprar asociados con un Usuario .

Claramente, preferiría si hubiera alguna manera de limitar el número de Comprar objetos buscados por:

1) imponer algún tipo de criterio (por ejemplo, solo compras por encima de & # 163; 1000, etc.); o

2) solo se recupera en lotes si no es posible lo anterior.

¿Es posible lo anterior? Solo me preocupa que, con la memoria limitada del iPhone, corro el riesgo de sobrecargarlo con miles de objetos extraídos innecesariamente.

Gracias de antemano por cualquier respuesta.

¿Fue útil?

Solución

Mi comprensión es que cuando recuperas objetos de Usuario, la relación con sus objetos de Compra será un error que solo se cargará si se accede.
En su lugar, puede buscar Objetos de compra con un predicado que especifique los Usuarios y las comprobaciones en cualquier otro criterio.

Dicho esto, definitivamente probaría casos de uso realistas (en dispositivos) antes de dedicar demasiado tiempo a los problemas de rendimiento. La eficiencia del iPhone y los datos básicos puede sorprenderlo.

Otros consejos

  1. Usa una propiedad extraída
  2. Utilice NSFetchedResultsController

La respuesta a estas y las preguntas que tendrá a continuación se responden en Guía de programación de datos del núcleo para el iPhone.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top