У меня есть список управляемых объектов, хранящихся в данных ядра. Я использую эти объекты для заполнения контроллера таблицы, который разделен в алфавитном порядке. Данные в этих объектах получаются через веб-службу, поэтому я не могу контролировать их случай (что в действительности не имеет особого значения).Сортировка NSArray и приоритет случая
Большая часть данных возвращается во всех шапках. Я заметил, что в редких случаях, когда дело не все, эти предметы не попадают в алфавитном порядке. В следующем примере кода stationIndex представляет собой массив отсортированных первых букв:
for(NSString *character in stationIndex){
NSPredicate *pred = [NSPredicate predicateWithFormat:@"name beginswith[c] %@", character];
// sort the list
NSArray *filteredGaugeList = [[tempGaugeList filteredArrayUsingPredicate:pred] sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSString *first = [(Gauge*)a name];
NSString *second = [(Gauge*)b name];
return [first compare:second];
}];
if([filteredGaugeList count] > 0){
[[self allGauges] addObject:filteredGaugeList];
}
}
Я знаю, что есть способ игнорировать случай, когда с помощью селектора, но в моем случае, я сортировка по свойствам объектов, поэтому я предполагаю, что мне нужен компаратор. Есть ли способ справиться с ситуацией в этой ситуации? Благодаря!