【问题标题】:How can I sort an NSArray containing NSDictionaries?如何对包含 NSDictionaries 的 NSArray 进行排序?
【发布时间】:2011-03-22 15:09:24
【问题描述】:

我有一个NSArray,其中包含NSDictionary 对象。这些NSDictionary 对象中的每一个都包含一个ORDER 键。

如何根据每个NSDictionaries 中的此键对NSArray 进行排序?

【问题讨论】:

    标签: iphone objective-c ios nsarray nsdictionary


    【解决方案1】:

    这是一个例子。假设您有一系列字典。 Ecah 字典有 2 个键“name”和“dateOfBirth”。您可以像这样按“名称”对数组进行排序:

    //
    // Sort array by name
    //
    NSSortDescriptor *Sorter = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
    [myArray sortUsingDescriptors:[NSArray arrayWithObject:Sorter]];
    [Sorter release];
    

    请注意,myArrayNSMutableArray

    【讨论】:

      【解决方案2】:

      阅读 Apple 的 Collections Programming TopicsSorting with Sort Descriptors 部分。

      本节中的示例介绍了按键对字典对象数组进行排序。

      【讨论】:

        【解决方案3】:

        对字典数组进行排序 你必须使用NSSortDescriptor 这样你才能根据键对字典数组进行排序

        在代码中,将 NSMutableArray 与 dict 对象传递给您想要对其进行排序的意思

        -(NSMutableArray*)sortingArrayOfDict:(NSMutableArray *)arrayTosort sortByObject:(NSString*)sortKey{
        NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:YES];
        [arrayTosort sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];
        return arrayTosort;
         }
        

        或者你甚至可以通过设置是/否来按升序或降序对其进行排序

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-03
          • 2014-02-22
          • 1970-01-01
          • 2012-02-14
          相关资源
          最近更新 更多