2012-09-25 19 views
7

Im tratando de asignar un valor a un doble, usando el siguiente código:La inicialización de 'doble' con una expresión de tipo incompatible 'id'

double distanceFormat = [self.runsArray[indexPath.row] valueForKey:@"runDistance"]; 

pero aparece el siguiente error:

Initialising 'double' with an expression of incompatible type 'id' 

Sin embargo, sé que el valor es un doble. ¿Hay alguna forma de hacer esto?

+0

Es self.runsArray una serie de Diccionarios? Imagino que solo necesita agregar doubleValue al final – rooster117

+0

Sí, funciona con cadenas. ¡No puedo conseguir que xcode me crea que hay un doble allí! –

+0

Simplemente pruebe [[self.runsArray [indexPath.row] valueForKey: @ "runDistance"] doubleValue]; – rooster117

Respuesta

12

Podría probar con:

double distanceFormat = [[self.runsArray[indexPath.row] valueForKey:@"runDistance"] doubleValue]; 

Si está seguro de que es el doble que creo que funcionaría.

+0

Genial, ¡muchas gracias! –

6

Uso NSNumber

NSNumber *mynumber = [somedictionary valueForKey:@"runDistance"]; 

vez que tenga el NSNumber, puede convertirlo en lo que quiera, f.ex:

int i = [mynumber intValue]; 
Cuestiones relacionadas