ios - 两个 NSMutableArray 根据第一个的目标排序

标签 ios objective-c ios6

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

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

我需要根据点的对象对它们进行排序。我试试这个 Order two NSMutableArrays based on one但由于 NSArray 而无济于事。我需要在 NSMutableArrays 中执行此操作。我用这个对点进行排序

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

最佳答案

我认为你应该引入一个玩家类

@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;
}];

关于ios - 两个 NSMutableArray 根据第一个的目标排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14369205/

相关文章:

ios - 将具有静态框架的 pod 作为 podspec 中的依赖项连接到另一个 pod

ios - C 结构与对象

iphone - iOS Autolayout - 如何在 View 之间设置两个不同的距离,取决于屏幕高度

ios - 如何通过 FMDB 将数据保存和检索到 sqlite

ios - cocoa pod : No such file or directory

iphone - subview 外的 UIButton 可点击区域

xcode - UIImageWriteToSavedPhotosAlbum 在 iOS 6 iPad 3 中不起作用

iphone - iOS Safari 页面上方奇怪的灰色空间

android - 迁移到 Cloud Endpoints Framework v2,iOS 客户端

ios - CLLocationManager 委托(delegate)方法没有被调用(谷歌地图已集成)