0

我有两个带有 NSString 和 NSNumber 对象的 NSMutableArrays,更具体地说:

NSMutableArray * points; // NSNumber objects
NSMutableArray * players; //NSString objects

我需要根据点的对象对它们进行排序。我尝试基于一个订购两个 NSMutableArrays,但由于 NSArray 没有帮助。我需要在 NSMutableArrays 中执行此操作。我用这个排序点

NSSortDescriptor *highestToLowest = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:NO];
[points sortUsingDescriptors:[NSArray arrayWithObject:highestToLowest]];
4

1 回答 1

3

我认为你应该介绍一个 Player Class

@interface Player : NSObject
@property(strong) NSString *name;
@property(strong) NSNumber *points;
@end

不再将信息保存在单独的数组中,您现在将为每个玩家拥有一个 Player 对象并将点保存在里面。现在将所有玩家放在一个数组中,您可以轻松排序。

[players sortUsingComparator: ^(Player *p1, Player *p2){
    if (p1.points < p2.points)
        return NSOrderedAscending;   
    else if(p1.points > p2.points)
        return NSOrderedDescending 
    return NSOrderedSame;
}];
于 2013-01-16T22:48:38.103 回答