我有一个字典数组,它 sortedArrayUsingComparator 根据键对它们进行排序;
listPerc = [listItem sortedArrayUsingComparator: ^(id a, id b) {
NSString *first = [a objectForKey:@"perc"];
NSString *second = [b objectForKey:@"perc"];
return [first compare:second];
问题是这个键是一个数字,顺序是这样的,例如:1,10,15,17,2,23,等等。 它不计算数字的大小。 我该怎么办?
最佳答案
能不能这样返回比较结果,
listPerc = [listItem sortedArrayUsingComparator: ^(id a, id b) {
int first = [[a objectForKey:@"perc"] intValue];
int second = [[b objectForKey:@"perc"] intValue];
if ( first < second ) {
return (NSComparisonResult)NSOrderedAscending;
} else if ( first > second ) {
return (NSComparisonResult)NSOrderedDescending;
} else {
return (NSComparisonResult)NSOrderedSame;
}
}
关于objective-c - sortedArrayUsingComparator int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6227702/