我有这个代码,它适用于数字(距离),允许我按最接近最远的顺序排序。但是我想做类似的事情,而是按字母顺序排序。所以我需要按字母顺序对self.names进行排序。另外,我想最终按字母顺序对self.names进行排序,如果你有相同的名字,那么按距离排序。这可能吗?
- (NSComparisonResult)sortByDistFromVor:(radiostations *)anObject
{
if ([self.distFromVor doubleValue] < [anObject.distFromVor doubleValue]) {
return NSOrderedAscending;
} else if ([self.distFromVor doubleValue] > [anObject.distFromVor doubleValue]) {
return NSOrderedDescending;
}
return NSOrderedSame;
}
答案 0 :(得分:2)
String实现了一个比较,所以radiostations类(其名称应按约定大写)可以实现它的名称比较,如下所示:
- (NSComparisonResult)sortByName:(radiostations *)anObject {
return [self.name compare:anObject.name];
}
按照你的描述进行二次排序:
- (NSComparisonResult)sortByNameThenDistance:(radiostations *)anObject {
NSComparisonResult result = [self sortByName:anObject];
return (result == NSOrderedSame)? [self sortByDistFromVor:anObject] : result;
}