2012-09-25 7 views
7

Im Versuch, einen Wert zu einem Doppel zuweisen, mit dem folgenden Code:Initialisierung ‚double‘ mit einem Ausdruck von nicht kompatiblen Typ ‚id‘

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

Aber ich immer die folgende Fehlermeldung erhalten:

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

Allerdings weiß ich, der Wert ist ein Doppel! Gibt es eine Möglichkeit, dies zu tun?

+0

Ist self.runsArray ein Array von Wörterbücher? Ich stelle vor, Sie müssen nur doubleValue zum Ende hinzufügen – rooster117

+0

Ja, es funktioniert mit Zeichenfolgen. Ich kann einfach nicht xcode bekommen, um mir zu glauben, dass da ein Double drin ist! –

+0

Probieren Sie einfach [[self.runsArray [indexPath.row] valueForKey: @ "runDistance"] doubleValue]; – rooster117

Antwort

12

Könnten Sie versuchen, mit:

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

Wenn Sie sicher sind, dass es doppelt so hoch ist Ich denke, es würde funktionieren.

+0

Großartig, vielen Dank! –

6

Verwenden NSNumber

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

Sobald Sie die NSNumber haben, können Sie es in konvertieren, was Sie wollen, f.ex:

int i = [mynumber intValue]; 
Verwandte Themen