2010-01-22 11 views
37

Używam NSFetchedResultsController w aplikacji na iPhone'a i zastanawiam się, czy istnieje prosty sposób na uzyskanie całkowitej liczby wierszy zwróconych we wszystkich sekcjach.Core Data NSFetchedResultsController - Całkowita liczba zwróconych rekordów

Zamiast pobierać [county z sekcji [pobierane sekcje kontrolne], a następnie przechodzić przez każdą sekcję, aby uzyskać jej liczbę, można to zrobić w jednym wierszu?

Dzięki!

Odpowiedz

107

Linia ta zwraca całkowitą liczbę idących obiektów:

[fetchedResultsController.fetchedObjects count] 
+1

Dzięki! Wiedziałem, że musi to być coś prostszego! –

+2

Dla każdego, kto zastanawia się, czy używasz właściwości pobierania wsadowego żądania pobierania, dostęp do powyższej metody liczenia nie powinien powodować błędów we wszystkich obiektach. Odsyłacz: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html – Senseful

+3

@Senseful, gdzie jest napisane, że nie spowoduje błędu w obiektach? To nie jest oczywiste z dokumentów. Czy to jest coś, co testowałeś? – bobics

12

Jak o tym?

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

To nie będzie dotykać pobranych obiektów w ogóle więc to nie gwarantuje się przyczepić tych.

+1

Uwielbiam KVC! –

+2

Smutne, że ta odpowiedź ma tak mało głosów do góry ... – mokagio

+2

@mokagio, ponieważ performFetch już tworzy błędy. Zamiast przechodzenia przez sekcje, które mogą być niewiarygodnie drogie, jeśli masz ich tysiące, powinieneś po prostu wywołać 'count' na' fetchedObjects'. – Andy

2

Swift.

fetchedResultsController.fetchedObjects?.count

Powiązane problemy