你如何从带有字典的 NSArray 中获得最大值?
假设我有 NSArray 包含键为“年龄”、“姓名”等的字典。现在我想获得年龄最高的记录。这可以通过一些 KVC 魔法实现吗?还是我必须迭代并以“手动”方式进行?
我试过类似的东西:
int max = [[numbers valueForKeyPath:@"@max.intValue"] intValue];
你如何从带有字典的 NSArray 中获得最大值?
假设我有 NSArray 包含键为“年龄”、“姓名”等的字典。现在我想获得年龄最高的记录。这可以通过一些 KVC 魔法实现吗?还是我必须迭代并以“手动”方式进行?
我试过类似的东西:
int max = [[numbers valueForKeyPath:@"@max.intValue"] intValue];
除非“intValue”是您字典中的键,否则键路径不会有多大好处。
如果这是您应该使用@"@max.age"
(在字典上)获取它的最大年龄。字典中的任何其他键也是如此。
[myDictionary valueForKeyPath:@"@max.age"];
Ifnumbers
是一个值数组,您可以将@"@max.self"
其用作获取最大值的关键路径。
[myArrayOfNumbers valueForKeyPath:@"@max.self"];
你快到了,你只需要指定你想要最大值的确切字段:
NSInteger max = [[numbers valueForKeyPath:@"@max.age"] integerValue];
我冒昧地将您int
的 s 修改为NSInteger
s,以防万一有人想在 iOS 和 OS X 上使用此代码。