如何将NSArray对象转换为double

时间:2014-06-25 23:30:41

标签: ios objective-c nsarray double valueconverter

我正在以NSArray格式从JSON中检索值。这是温度。

然而,它是在摄氏度,我希望将其转换为开尔文。我需要做的就是添加274.15。 我真的不能这样做,因为它是NSArray,我无法直接添加。

我尝试转换为NSString,然后转换为double,但似乎我没有那个选项。

这是当前的代码:

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

1 个答案:

答案 0 :(得分:2)

由于您的日志语句显示数值,您可以告诉词典“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);