0

我有这个代码,它适用于数字(距离),它允许我按最近到最远排序。但是我想做类似的事情,而是按字母顺序排序。所以我需要按字母顺序对 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;
}
4

1 回答 1

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;
}
于 2012-04-25T02:06:55.137 回答