Я пытаюсь численно отсортировать данные, отображаемые в UITableView.
До этого я использовал такой дескриптор сортировки:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)];
Теперь я хотел бы использовать блок дляотсортировать это численно следующим образом:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
return [((NSString *)obj1) compare:(NSString *)obj2 options:NSCaseInsensitiveSearch | NSNumericSearch];
}];
, но сортирует данные по неосторожности, вызывая конфликт с именами разделов в NSFetchedResultsController.Поэтому я попытался имитировать старую сортировку с помощью блока сравнения - просто чтобы быть уверенным, что проблема не связана с числовым сравнением.Проблема в том, что эти строки:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
return [((NSString *)obj1) caseInsensitiveCompare:(NSString *)obj2];
}];
также вызывают ту же ошибку, и я не понимаю, почему они не будут сортировать данные так же, как первый метод ...
Есть идеи?