如何从包含字典的NSArray中获取最大值?

时间:2012-07-17 12:48:23

标签: iphone objective-c cocoa-touch nsarray key-value-coding

如何从带有字典的NSArray获得最大值?

假设我说我的NSArray包含带键的字典" age"," name"等。 现在我想获得最高年龄的记录。 这有可能与一些KVC魔术?或者我必须迭代并执行"手册"方式是什么?

我尝试过类似的事情:

int max = [[numbers valueForKeyPath:@"@max.intValue"] intValue];

2 个答案:

答案 0 :(得分:14)

除非“intValue”是你词典中的一个键,否则关键路径不会有多大好处。

如果是你所追求的最大年龄,你应该使用@"@max.age"(在字典上)来获得它。对于词典中的任何其他键也是如此。

[myDictionary valueForKeyPath:@"@max.age"];

如果numbers是一个值数组,您可以使用@"@max.self"作为获取最大值的关键路径。

[myArrayOfNumbers valueForKeyPath:@"@max.self"];

答案 1 :(得分:1)

你快到了,你只需要指定你想要的最大值的确切字段:

NSInteger max = [[numbers valueForKeyPath:@"@max.age"] integerValue];

我冒昧地将int修改为NSInteger,以防有人想在iOS和OS X上使用此代码。