使用字典对字典数组进行排序,我可以使用sortUsingDescriptors吗?

时间:2012-09-23 19:25:56

标签: objective-c sorting nsdictionary

我无法弄清楚如何对数组进行排序。它是一个带有字典的数组,里面有字典。所以要获得startdate我需要写

NSDictionary *object = [array objectAtIndex:0];
[[array objectForKey:@"DATE"]objectForKey:@"startDate"];

我想对数组进行排序,但因为我需要根据第二个字典对其进行排序,我无法使用它:

[array sortUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"startDate" ascending:YES]]];

我想我只需做一些小调整,但我无法弄清楚如何。

1 个答案:

答案 0 :(得分:3)

首先,应该在object而不是array上调用您获取对象的行。此外,您可以使用valueForKeyPath代替objectForKey来嵌套词典。像这样:

[object valueForKeyPath:@"DATE.startDate"];

现在您只需将相同的内容应用于排序描述符:

[array sortUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"DATE.startDate" ascending:YES]]];

请注意,sortUsingDescriptors:ascending:它是一种排序的方法,必须在NSMutableArray上调用。如果您只想要数组的排序副本,请改用sortedArrayUsingDescriptors:方法。我希望这是有道理的......