Möchten nach Name sortiert werden, die eins-zu-eins Beziehung unter Verwendung NSSortDescriptor
in NSFetchedResultsController
haben. Hier ist mein CodeNSFetchedResultsController mit NSSortDescriptor eins zu eins
NSFetchRequest <studentDetail *> *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:[studentDetail entityName]];
NSSortDescriptor *sortDescriptorForSchoolName = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(schoolName))
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)];
NSSortDescriptor *sortDescriptorForSchool = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(school))
ascending:YES];
[fetchRequest setSortDescriptors:@[sortDescriptorForSchool, sortDescriptorForSchoolName]];
[fetchRequest setFetchBatchSize:4];
NSManagedObjectContext *mainContext = [[coreDataManager sharedManager] managedObjectContext];
NSFetchedResultsController *FRC = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:mainContext
sectionNameKeyPath:nil
cacheName:nil];
[FRC setDelegate: self];
NSError *fetchError = nil;
if (![FRC performFetch: &fetchError])
NSLog(@"fetch error: %@", fetchError);
[self setStudentDetailFetchedResultsController: FRC];
Beispiel DB Format:
- Schule und Schüler sind Entitätsname.
- Schule Beziehung mit Studenten eins zu viele.
- Insgesamt 4 Schule. Jede Schule hat 4 Schüler.
- Jetzt möchte ich alle Schülerliste mit Namen aufsteigend sortieren zeigen.
In UITableView
zeige ich Studentendaten. Es gibt eine Option zum Sortieren von Studenten nach school
Einheit sortieren. In meiner FRC haben studentDetail
. Wie kann ich diese Details mit FRC sortieren?
Von studentDetail
Einheit haben eins zu eins Beziehung mit school
.
aktualisieren
school entity
one to many
school1
relationship
->student1
->student2
->student3
->student4
school2
relationship
->student5
->student6
->student7
->student8
school3
relationship
->student9
->student10
->student11
->student12
school4
relationship
->student13
->student14
->student15
->student16
student entity
00.59
student1
relationship
->school1
student2
relationship
->school1
student3
relationship
->school1
student4
relationship
->school1
student5
relationship
->school2
student6
relationship
->school2
student7
relationship
->school2
student8
relationship
->school2
student9
relationship
->school3
student10
relationship
->school3
student11
relationship
->school3
student12
relationship
->school3
student13
relationship
->school4
student14
relationship
->school4
student15
relationship
->school4
student16
relationship
->school4
Got answer from dank @RunLoop. Aber das braucht wenig Veränderung was ich will.
Wie ich in meinem Code dient für NSStringFromSelector(@selector(school))
wie, beispielsweise zu sortieren: [NSSortDescriptor sortDescriptorWithKey[NSString stringWithFormat:@"%K.%K", NSStringFromSelector(@selector(school)), NSStringFromSelector(@selector(schoolName))] ascending:YES]
Statt [NSSortDescriptor sortDescriptorWithKey:@"school.schoolName" ascending:YES]
Wenn ich diese Art von Verfahren zu verwenden, in Funktion, wenn ich einen beliebigen Namen in Einheit ändern ist es zeigen Warnung und statische school.schoolName
nicht. Ist das möglich? Ich habe diese Methode mit NSPredicate
versucht, die keine Warnung anzeigt. Wie soll ich das lösen?
Möchten Sie DB-Werte oder DB-Ablaufdiagramm? – user3589771
@RunLoop Können Sie jetzt überprüfen? Aktualisierte Frage. Trotzdem, wenn ich hier irgendeinen Kommentar verpasse. – user3589771