1

我不知道如何对我的数组进行排序。这是一个包含字典的数组,里面有字典。所以要获得开始日期,我需要写

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

我想对数组进行排序,但是因为我需要根据第二个字典对其进行排序,所以我不能使用它:

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

我想我只需要做一些小的调整,但我不知道怎么做。

4

1 回答 1

3

首先,应该调用您获取对象的行object而不是array. 此外,您可以使用valueForKeyPath而不是objectForKey嵌套字典。像这样的东西:

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

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

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

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

于 2012-09-23T19:42:06.067 回答