使用多个对象对NSMutableArray / Dictionary进行排序

时间:2012-08-28 18:45:42

标签: iphone ios xcode nsmutablearray nsmutabledictionary

我遇到了一个问题,我认为我过于复杂。

我需要创建一个NSMutableArray或NSMutableDictionary。我将添加至少两个对象,如下所示:

NSMutableArray *results = [[NSMutableArray alloc] init];

[results addObject: [[NSMutableArray alloc] initWithObjects: [NSNumber numberWithInteger:myValue01], @"valueLabel01", nil]];

这给了我需要的数组但是在添加完所有对象后,我需要能够通过第一列(整数 - myValues)对数组进行排序。我知道如何在有密钥时进行排序,但我不确定如何添加密钥或是否有其他方法对数组进行排序。

我可能稍后会在数组中添加更多对象。

3 个答案:

答案 0 :(得分:2)

快速参考这个问题的另一个好答案:

How to sort NSMutableArray using sortedArrayUsingDescriptors?

在这些情况下,NSSortDescriptors可能是您最好的朋友:)

答案 1 :(得分:0)

你在这里做的是创建一个包含两个元素的列表:[NSNumber numberWithInteger:myValue01]和@“valueLabel01”。在我看来,你想保留记录,每个记录都有一个数字和一个字符串?您应该首先创建一个包含数字和字符串的类,然后考虑排序。

答案 2 :(得分:0)

sortedArrayUsingComparator:方法不适合您吗?类似的东西:

- (NSArray *)sortedArray {
    return [results sortedArrayUsingComparator:(NSComparator)^(id obj1, id obj2)
    {
        NSNumber *number1 = [obj1 objectAtIndex:0];
        NSNumber *number2 = [obj2 objectAtIndex:0];
        return [number1 compare:number2]; }];
    }