Ich habe ein Array, das einige Kerndatenobjekte enthält. Jedes Objekt hat drei Attribute sagen „First Name
“ & „Last Name
“Sortieren NSArray mit mehreren Prädikaten in Objective C
I & sortieren das Array nach dem Suchbuchstabe (n) filtern möchten. Die endgültige Liste sollte in dieser Reihenfolge:
- Datensätze, die mit Vornamen wie wie gesuchten Text beginnen soll
- Aufzeichnungen zuerst kommen, der mit Nachnamen wie wie gesuchten Text beginnt soll
- Aufzeichnungen zweite kommen, die enthalten Vorname als wie gesuchter Text sollte dritte
- Aufzeichnungen kommen, die Nachnamen wie wie gesuchten Text enthält, sollte
vierten kommen verwirrte ich in Prädikate zu schaffen und zu sortieren descri Ptors. Kann jemand helfen?
Edit:
Hier ist meine abgerufenen Ergebnisse Controller:
-(NSFetchedResultsController *)myFetchedResultsController
{
if (!_myFetchedResultsController)
{
...
...
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:MY_ENTITY_NAME];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(firstName beginswith[cd] %@) || (lastName beginswith[cd] %@) || (firstName contains[cd] %@) || (lastName contains[cd] %@))", self.searchText, self.searchText, self.searchText, self.searchText];
[fetchRequest setPredicate:predicate];
//I really dont have idea about how to set sort description to this scenario
NSSortDescriptor *firstNameDescriptors = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
NSSortDescriptor *lastNameDescriptors = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
[fetchRequest setSortDescriptors:@[firstNameDescriptors, lastNameDescriptors]];
_userFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:appDelegate.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
}
return _myFetchedResultsController;
}
Aber das scheint nicht funktioniert, bedeutet es nicht, die Objekte nicht sortieren.
Könnten Sie bitte zeigen, was Sie versucht haben und wo Sie mit dem Problem konfrontiert sind? –