2010-01-22 18 views
37

Estoy usando NSFetchedResultsController en una aplicación de iPhone, y me pregunto si existe alguna manera fácil de obtener el número total de filas devuelto en todas las secciones.Core Data NSFetchedResultsController - Número total de registros devueltos

En lugar de obtener el [[fetchedResultsController sections] count] y luego recorrer cada sección para obtener su conteo, ¿se puede hacer en una línea?

Gracias!

Respuesta

107

Esta línea devuelve el número total de objetos inverosímiles:

[fetchedResultsController.fetchedObjects count] 
+1

Gracias! ¡Sabía que tenía que ser algo así de simple! –

+2

Para cualquier persona que se pregunte, si está utilizando la propiedad de búsqueda del tamaño de lote de búsqueda Fetch, acceder a este método de recuento anterior no debe generar errores en todos los objetos. Referencia: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html – Senseful

+3

@Senseful ¿dónde dice que no fallará los objetos? No es obvio desde los documentos. ¿Esto es algo que has probado? – bobics

12

¿Qué tal este?

[fetchedResultsController.sections.valueForKeyPath: @"@sum.numberOfObjects"]; 

Esto no tocará los objetos que se hayan buscado, por lo que se garantiza que no se dañarán.

+1

¡Tengo que amar a KVC! –

+2

Es triste ver que esta respuesta tiene tan poco votos ... – mokagio

+2

@mokagio porque performFetch ya crea fallas. En lugar de recorrer secciones que pueden ser increíblemente caras si tiene miles de ellas, simplemente debe llamar a 'count' en 'fetchedObjects'. – Andy

2

Swift.

fetchedResultsController.fetchedObjects?.count