我有一个存储在核心数据中的托管对象列表。我使用这些对象来填充按字母顺序划分的 tableview 控制器。这些对象中的数据是通过 Web 服务获取的,因此我无法控制它们的情况(在这种情况下实际上并没有太大区别)。
大多数数据都以大写形式返回。我注意到,在极少数情况下,案例并非全部大写,这些项目不会按字母顺序排列。在以下代码示例中,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];
}
}
我知道在使用选择器时有一种方法可以忽略大小写,但就我而言,我正在对对象的属性进行排序,所以我假设我需要一个比较器。在这种情况下有没有办法处理案件?谢谢!