Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将NSArray对象转换为double_Ios_Objective C_Nsarray_Double_Valueconverter - Fatal编程技术网

Ios 如何将NSArray对象转换为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"];

我正在以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

由于日志语句显示的是数值,因此可以看出字典“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。