如何从带有字典的NSArray获得最大值?
假设我说我的NSArray包含带键的字典" age"," name"等。 现在我想获得最高年龄的记录。 这有可能与一些KVC魔术?或者我必须迭代并执行"手册"方式是什么?
我尝试过类似的事情:
int max = [[numbers valueForKeyPath:@"@max.intValue"] intValue];
答案 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上使用此代码。