【发布时间】:2012-08-07 03:33:18
【问题描述】:
我正在尝试对 NSDictionaries 的 mutableArray 进行排序,目前我可以通过使用一个 objectForKey 值进行排序来做到这一点,但问题是这些值中的很多可能是相同的,所以我需要另一个 objectForKey 来排序数组。我想知道,如果第一个 objectForKey 比较返回相同的值,我如何才能进行第二个 objectForKey 比较,依此类推..
目前我正在这样做,它有效..但显然只有一个键。
[dataArrayOfDictionaries sortUsingComparator:^ NSComparisonResult(NSDictionary *d1, NSDictionary *d2)
{
NSString *n1 = [d1 objectForKey:@"DESCRIPTION"];
NSString *n2 = [d2 objectForKey:@"DESCRIPTION"];
return [n1 localizedCompare:n2];
} ];
在我的调查中,我尝试过这个 -
[dataArrayOfDictionaries sortUsingComparator:^ NSComparisonResult(NSDictionary *d1, NSDictionary *d2)
{
NSString *n1 = [d1 objectForKey:@"DESCRIPTION"];
NSString *n2 = [d2 objectForKey:@"DESCRIPTION"];
return [n1 localizedCompare:n2];
n1 = [d1 objectForKey:@"ID"];
n2 = [d2 objectForKey:@"ID"];
return [n1 localizedCompare:n2];
} ];
但是这不起作用,因为它对描述进行排序,然后完全根据 ID 进行排序,如果描述键相同,我想要它,然后按 ID 键对这些值进行排序。如果这不起作用,那么就下去排序之前的键列表..我希望这是有道理的..任何帮助将不胜感激。
【问题讨论】:
标签: iphone ios nsmutablearray nsdictionary