-[__ NSSingleObjectArrayI floatValue]:无法识别的选择器已发送到实例

问题描述 投票:0回答:1

以下是我的回复

geolocation =         {
        loc =             {
            lat = "22.4409980000000004451976565178";
            long = "70.0686230000000023210304789245";
        };
    };  

[当我尝试以下代码时,我的应用程序崩溃:

NSNumber* n = [userPin valueForKeyPath:@"geolocation.loc.lat"];
NSLog(@"num is class %@", NSStringFromClass([n class]));
float fCost = [n floatValue];  

[打印我的NSStringFromClass时,我会得到__NSSingleObjectArrayI

任何建议如何解决此问题?

ios objective-c xcode floating-point nsnumber
1个回答
0
投票

猜测userPin的(运行时)类型是数组,它包含一个元素。当应用于valueForKey:所基于的数组valueForKeyPath:时,返回通过将自身应用于数组的每个元素而产生的数组。

如果是这种情况,请在调用之前索引userPin或处理由调用产生的数组。

© www.soinside.com 2019 - 2024. All rights reserved.