【问题标题】:Sort an NSMutableArray / Dictionary with several objects使用多个对象对 NSMutableArray / Dictionary 进行排序
【发布时间】:2012-08-28 18:45:42
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: iphone ios xcode nsmutablearray nsmutabledictionary


    【解决方案1】:

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

    How to sort NSMutableArray using sortedArrayUsingDescriptors?

    NSSortDescriptors 在这些情况下可以成为你最好的朋友 :)

    【讨论】:

    • 不可能!!我正在寻找这个答案几个小时!显然我必须等待标记为正确。干杯:)
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-03
        • 1970-01-01
        • 2013-11-08
        相关资源
        最近更新 更多