我有一个Array数字,我想在其中找到最大值。
我这样做如下:

NSNumber *test = [fuelConsumption valueForKey:@"@max.self"];

当我先生成然后运行时,出现以下错误:

由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[ valueForUndefinedKey:]:此类不符合密钥max.self的编码值。

据我了解,这就是人们寻求这一价值的方式。
有什么想法可能会出错吗?

我正在为iOS9.x编程并使用Xcode 7.3.1

最佳答案

之所以会出现异常,是因为当您给valueForKey:一个NSString时,它将调用objectForKey:,而当字符串以@开头时,它将调用[super valueForKey:],后者可能会调用valueForUndefinedKey:,这可能会引发异常。

因此,将valueForKey:更改为valueForKeyPath:

NSNumber *test = [fuelConsumption valueForKeyPath:@"@max.self"];

阅读有关kvc-collection-operators的更多信息。

关于ios - NSArray valueForKey:@“@ max.self”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38889543/

10-10 09:18