При сортировке массива символьных строк я узнал, что сортировку можно легко выполнить с помощью следующего кода.
arr = [arr sortedArrayUsingSelector: @selector (localizedStandardCompare :)];
Однако на этот раз я хочу переставить экземпляр настраиваемого класса. * Строковую информацию можно получить из метода экземпляра настраиваемого класса.
Итак, возвращая NSComparisonResult, используя следующую сортировку блоков
Я думал, что могу переставить экземпляр настраиваемого класса, но
Оно пошло не так, как я ожидал.
- (NSArray <ObjectType> *) sortedArrayUsingComparator: (NSComparator) cmptr;
Если вы понимаете, дайте мне знать. Спасибо.
[array sortedArrayUsingComparator:^NSComparisonResult(CustomClass *item1, CustomClass *item2) {Важно заказать @selector (localizedStandardCompare:)!
К сожалению, ваши комментарии добавляют мало информации. Вам нужно отредактировать вопрос (посмотрите в левый нижний угол под тегами, и вы увидите share edit close flag, нажмите edit), добавьте полный блок, сведения об используемых свойствах CustomClass, порядок, который вы получаете, и порядок, который вы ожидаете.





NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"Your Key" ascending:NO];
NSArray *sortedArray=[yourArrayName sortedArrayUsingDescriptors:@[sort]];
Всегда лучше добавлять пояснения к ответу, чтобы люди поняли, что они собираются делать.
Важно заказать @selector (localizedStandardCompare :)!
NSPredicate * p1 = [NSPredicate predicateWithFormat: @ "ваш ключ содержит [c]% @", sortingCharacter]; NSMutableArray * sortedArray = [NSMutableArray arrayWithArray: [yourArray filterArrayUsingPredicate: p1]]; Пожалуйста, используйте этот код сравнения и сортировки без учета регистра
Отредактируйте свой вопрос и включите подробную информацию о
cmptrи обо всем, что он использует. Не зная, какой у вас компаратор, люди не могут помочь вам решить вашу проблему, что «он не сдвинулся с места, как я ожидал».