Ios 如何将NSArray对象转换为double
我正在以NSArray格式从JSON检索一个值。是温度 但是它是摄氏度,我想把它转换成开尔文。我只需要加274.15。 我真的无法做到这一点,因为这是NSArray,我无法直接添加 我尝试转换为NSString,然后转换为double,但似乎我没有这个选项 这是当前代码:Ios 如何将NSArray对象转换为double,ios,objective-c,nsarray,double,valueconverter,Ios,Objective C,Nsarray,Double,Valueconverter,我正在以NSArray格式从JSON检索一个值。是温度 但是它是摄氏度,我想把它转换成开尔文。我只需要加274.15。 我真的无法做到这一点,因为这是NSArray,我无法直接添加 我尝试转换为NSString,然后转换为double,但似乎我没有这个选项 这是当前代码: NSDictionary *temp = [currentDate objectForKey:@"temp"]; NSArray* maxTemp = [temp objectForKey:@"max"];
NSDictionary *temp = [currentDate objectForKey:@"temp"];
NSArray* maxTemp = [temp objectForKey:@"max"];
NSLog(@"Max Temp : %@ Kelvin",maxTemp );
NSArray* minTemp = [temp objectForKey:@"min"];
NSLog(@"Min Temp : %@ Kelvin",minTemp);
我想做的就是得到(maxTemp+274.15)
当前值(以摄氏度为单位):
Max Temp : 28.8 Kelvin
Min Temp : 26.55 Kelvin
由于日志语句显示的是数值,因此可以看出字典“max”和“min”键的内容不是数组。它们几乎肯定是弦。(JSON以字符串形式发送数据。) NSString有一个doubleValue方法。试试这个:
NSDictionary *temp = [currentDate objectForKey:@"temp"];
NSString* maxTempString = [temp objectForKey:@"max"];
double maxTemp = [maxTempString doubleValue];
NSLog(@"max Temp : %f Kelvin", maxTemp );
NSString* minTempString = [temp objectForKey:@"min"];
double minTemp = [minTempString doubleValue];
NSLog(@"Min Temp : %f Kelvin", minTemp);
“既然是NSArray”-奥利
objectForKey:
返回一个id
(这是NSObject*
的别名)。仅仅因为你决定把它当作NSArray,并不意味着它就是NSArray。首先,那个日志看起来不像NSArray。很抱歉,我没有意识到我可以使用NSString。我正在检索一种非常原始的JSON数据,它的格式没有正确设置,所以在检索单个值的过程中,我最终使用了NSArray。