我有一个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/