2012-09-25 10 views
7

Nel tentativo di assegnare un valore a una doppia, utilizzando il seguente codice:Inizializzazione 'doppio' con un'espressione di tipo incompatibile 'id'

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

Ma continuo a ricevere il seguente errore:

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

Tuttavia, so che il valore è un doppio! C'è un modo per fare questo?

+0

È self.runsArray una serie di dizionari? Immagino che tu debba solo aggiungere doubleValue alla fine – rooster117

+0

Sì, funziona con le stringhe. Non riesco a trovare xcode per credermi che c'è un doppio lì dentro! –

+0

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

risposta

12

Potrebbe provare con:

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

Se sei sicuro che è il doppio penso che avrebbe funzionato.

+0

Grande, grazie mille! –

6

Usa NSNumber

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

Una volta ottenuto il NSNumber, è possibile convertirlo in quello che vuoi, f.ex:

int i = [mynumber intValue]; 
Problemi correlati