9

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

假设我有 NSArray 包含键为“年龄”、“姓名”等的字典。现在我想获得年龄最高的记录。这可以通过一些 KVC 魔法实现吗?还是我必须迭代并以“手动”方式进行?

我试过类似的东西:

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

2 回答 2

16

除非“intValue”是您字典中的键,否则键路径不会有多大好处。

如果这是您应该使用@"@max.age"(在字典上)获取它的最大年龄。字典中的任何其他键也是如此。

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

Ifnumbers是一个值数组,您可以将@"@max.self"其用作获取最大值的关键路径。

[myArrayOfNumbers valueForKeyPath:@"@max.self"];
于 2012-07-17T12:54:35.050 回答
2

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

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

我冒昧地将您int的 s 修改为NSIntegers,以防万一有人想在 iOS 和 OS X 上使用此代码。

于 2012-07-17T12:53:49.333 回答