使用不兼容类型'id'的表达式初始化'double'

Ale*_*ere 8 initialization objective-c ios

我试图使用以下代码为double赋值:

double distanceFormat = [self.runsArray[indexPath.row] valueForKey:@"runDistance"];
Run Code Online (Sandbox Code Playgroud)

但我不断收到以下错误:

Initialising 'double' with an expression of incompatible type 'id'
Run Code Online (Sandbox Code Playgroud)

但是,我知道价值是双倍的!有没有办法做到这一点?

CSo*_*naM 14

你可以尝试:

double distanceFormat = [[self.runsArray[indexPath.row] valueForKey:@"runDistance"] doubleValue];
Run Code Online (Sandbox Code Playgroud)

如果你确定它是双倍的,我认为它会起作用.


Tra*_*hor 7

使用NSNumber

NSNumber *mynumber = [somedictionary valueForKey:@"runDistance"];
Run Code Online (Sandbox Code Playgroud)

一旦你有了nsnumber,就可以将它转换成你想要的任何东西,f.ex:

int i = [mynumber intValue];
Run Code Online (Sandbox Code Playgroud)