Упоминая NSPredicate, я чувствую, как будто ОП хотел, чтобы отсортировать набор как часть казненных выборки. Имел ли он в виду это или нет, вот пример этого. Скажем, у вас есть много обратных отношений между сущностью Employee и подразделением, т. Е. Отдел содержит много сотрудников. Учитывая вы принес отдел уже, принеси сотрудников в отделе и сортировать их по имени:
Использование MagicalRecord:
Department *department = someFetchedDepartment;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"department == %@", department];
NSArray *sortedEmployees = [Employee MR_findAllSortedBy:@"firstName" ascending:YES withPredicate:predicate];
Без MagicalRecord:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *employeeEntity = [NSEntityDescription @"Employee" inManagedObjectContext:self.context];
[request setEntity:employeeEntity];
Department *department = someFetchedDepartment;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"department == %@", department];
[request setPredicate:predicate];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:ascending];
[request setSortDescriptors:@[sortDescriptor]];
NSError *error = nil;
NSArray *sortedEmployees = [self.context executeFetchRequest:request error:&error];
поправьте меня, если я неверно, но я считаю, что `NSSet` является неупорядоченным, то есть содержащиеся в нем элементы не имеют особого порядка (концептуально говоря), что означает, что` NSSet` не может быть отсортирован. Вы можете поместить объекты в `NSArray`, который упорядочен и может быть отсортирован. – filipe 2010-12-16 21:34:45
Похоже, это то, о чем спрашивает OP ... – 2010-12-16 21:39:26