如何对包含NSDictionaries的NSArray进行排序?

时间:2010-07-29 09:51:23

标签: iphone objective-c ios nsarray nsdictionary

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

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

3 个答案:

答案 0 :(得分:7)

这是一个例子。想象一下你有一系列的字典。 Ecah dictionnary有2个键“name”& “出生日期”。您可以按照“名称”对数组进行排序:

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

请注意,myArrayNSMutableArray

答案 1 :(得分:4)

阅读Apple Sorting with Sort DescriptorsCollections Programming Topics部分。

本节中的示例包括按键对字典对象数组进行排序。

答案 2 :(得分:1)

排序字典数组 你必须使用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;
 }

甚至可以通过设置YES / NO

按升序或降序对其进行排序