Pracuję nad aplikacją na iPhone'a z CoreData. Jedna z moich jednostek ma własność NSDate o nazwie "time". Przechowuje czasy do minuty/sekundy. W mojej sekcji chciałbym mieć datę na dzień. Jeśli więc istnieją wpisy "2010-06-14 8:00" i "2010-06-14 11:00", chciałbym, aby były one zgrupowane w "2010-06-14".iPhone CoreData: jak grupować pobrane wyniki według dnia?
Obecnie wystarczy użyć @ „czas” jako mój sectionNameKeyPath:
NSFetchedResultsController *aFetchedResultsController =
[[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:@"time"
cacheName:@"Root"];
Czy istnieje trik do grupy przez czas do dnia? Czy muszę używać zwykłego SQL i coś w stylu "GROUP BY date(time, '%Y-%m-%d')
"?
Zastanawiasz się: dlaczego nie zwrócić ciągu znaków z 'self.time.components.day'? –
Nie zastępuje również nadpisanego programu pobierającego, gdy ponownie generujesz podklasę 'NSManagedObject' dla twojego obiektu? –
@Matt zazwyczaj taka metoda będzie znajdować się w kategorii podmiotu, aby uniknąć tego problemu. – brodney