按字母顺序排序类实例

时间:2012-04-25 01:33:09

标签: iphone objective-c xcode

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

1 个答案:

答案 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;
}