Ich baue meine erste App in xcode und versuche, eine Liste der Menschen von kommenden Geburtstagen mit CoreData und NSFetchedResultController abgerufen. Meine Einheit ist Setup alsCoreData sortieren nach anstehenden Geburtstagen
uBirthdays
--------------
NSString uName
NSDate uBday
folgt Hier ist meine aktuellen Code:
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"uBirthdays" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"uBday" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"sectionNameGen" cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
[sort release];
[fetchRequest release];
[theFetchedResultsController release];
return _fetchedResultsController;
}
Ist es möglich, dass zu sortieren durch anstehende Geburtstage? Oder müsste ich meine Geburtstage ent-normalisieren, damit ich nur nach Monat und Tag sortieren kann? Jede Eingabe wird sehr geschätzt.
Vielen Dank
Danke für Ihre Antwort. Da Geburtstage mit Jahren aus der Vergangenheit gespeichert werden, funktioniert das nicht? Wie wenn dein Geburtstag 1983 ist, wird es nie auftauchen? – lostincode
Sie haben absolut Recht! In diesem Fall müssen Sie einige NSDate-Formatierungen vornehmen. Verwenden Sie eine Tabellenansicht, um diese bevorstehenden Geburtstage anzuzeigen und sie in Abschnitte zu gruppieren? – Rog
Ja, es geht in eine Tabellenansicht und ich konnte Abschnitte herausfinden, aber die Sortierung nach "bevorstehenden Geburtstagen" ist, wo ich verloren bin, aufgrund der Tatsache, dass Jahre in der Vergangenheit liegen. – lostincode