我无法弄清楚如何对数组进行排序。它是一个带有字典的数组,里面有字典。所以要获得startdate我需要写
NSDictionary *object = [array objectAtIndex:0];
[[array objectForKey:@"DATE"]objectForKey:@"startDate"];
我想对数组进行排序,但因为我需要根据第二个字典对其进行排序,我无法使用它:
[array sortUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"startDate" ascending:YES]]];
我想我只需做一些小调整,但我无法弄清楚如何。
答案 0 :(得分:3)
首先,应该在object
而不是array
上调用您获取对象的行。此外,您可以使用valueForKeyPath
代替objectForKey
来嵌套词典。像这样:
[object valueForKeyPath:@"DATE.startDate"];
现在您只需将相同的内容应用于排序描述符:
[array sortUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"DATE.startDate" ascending:YES]]];
请注意,sortUsingDescriptors:ascending:
它是一种排序的方法,必须在NSMutableArray
上调用。如果您只想要数组的排序副本,请改用sortedArrayUsingDescriptors:
方法。我希望这是有道理的......