我有Array
个数字,我希望找到最高价值。
我这样做如下:
NSNumber *test = [fuelConsumption valueForKey:@"@max.self"];
当我构建然后运行时,出现以下错误:
由于未捕获的异常终止应用' NSUnknownKeyException',原因:' [< __ NSArrayM 0x7b26e8d0> valueForUndefinedKey:]:此类不是密钥max.self的密钥值编码兼容。'
据我所知,这就是人们寻找这个价值的方式。 任何可能出错的想法?
我正在为iOS9.x编程并使用Xcode 7.3.1
答案 0 :(得分:1)
您收到异常,因为当您valueForKey:
NSString
时,它会调用objectForKey:
,当字符串以@
开头时,它会调用[super valueForKey:]
,可能会调用可能引发异常的valueForUndefinedKey:
。
因此,将valueForKey:
更改为valueForKeyPath:
,例如
NSNumber *test = [fuelConsumption valueForKeyPath:@"@max.self"];
答案 1 :(得分:0)
您需要使用valueForKeyPath
NSNumber *test = [fuelConsumption valueForKeyPath:@"@max.self"];
有关Collection Operators
阅读apple documentation的更多信息。