【发布时间】:2011-03-22 15:09:24
【问题描述】:
我有一个NSArray,其中包含NSDictionary 对象。这些NSDictionary 对象中的每一个都包含一个ORDER 键。
如何根据每个NSDictionaries 中的此键对NSArray 进行排序?
【问题讨论】:
标签: iphone objective-c ios nsarray nsdictionary
我有一个NSArray,其中包含NSDictionary 对象。这些NSDictionary 对象中的每一个都包含一个ORDER 键。
如何根据每个NSDictionaries 中的此键对NSArray 进行排序?
【问题讨论】:
标签: iphone objective-c ios nsarray nsdictionary
这是一个例子。假设您有一系列字典。 Ecah 字典有 2 个键“name”和“dateOfBirth”。您可以像这样按“名称”对数组进行排序:
//
// Sort array by name
//
NSSortDescriptor *Sorter = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:Sorter]];
[Sorter release];
请注意,myArray 是 NSMutableArray。
【讨论】:
阅读 Apple 的 Collections Programming Topics 的 Sorting with Sort Descriptors 部分。
本节中的示例介绍了按键对字典对象数组进行排序。
【讨论】:
对字典数组进行排序
你必须使用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;
}
或者你甚至可以通过设置是/否来按升序或降序对其进行排序
【讨论】: