2009-08-25 16 views
10

¡Hola expertos apilados!Generando una cadena de CLLocationDegrees, p. Ej. en NSLog o StringWithFormat

Mi pregunta: ¿Cómo generar una cadena a partir de un valor CLLocationDegrees?

intentos fallidos:

1. NSLog(@"Value: %f", currentLocation.coordinate.latitude); //Tried with all NSLog specifiers. 
2. NSNumber *tmp = [[NSNumber alloc] initWithDouble:currentLocation.coordinate.latitude]; 
3. NSString *tmp = [[NSString alloc] initWithFormat:@"%@", currentLocation.coordinate.latitude]; 

Cuando miro en la definición de los CLLocationDegrees se dice claramente que se trata de un doble:

typedef double CLLocationDegrees; 

Qué me estoy perdiendo aquí? Esto me está volviendo loco ... ¡Por favor ayuda a salvar mi mente!

Gracias de antemano y saludos cordiales. // Abeansits

Respuesta

33

Estos son correctas:

NSLog(@"Value: %f", currentLocation.coordinate.latitude); //Tried with all NSLog specifiers. 
NSNumber *tmp = [[NSNumber alloc] initWithDouble:currentLocation.coordinate.latitude]; 

Esto está mal, porque coordinate.latitude no es un objeto como NSString podría esperar.

NSString *tmp = [[NSString alloc] initWithFormat:@"%@", currentLocation.coordinate.latitude]; 

Si desea una NSString:

myString = [[NSNumber numberWithDouble:currentLocation.coordinate.latitude] stringValue]; 

o

NSString *tmp = [[NSString alloc] initWithFormat:@"%f", currentLocation.coordinate.latitude]; 

Marco

+0

Gracias Marco! Esto es tan cierto. Mi error realmente residió en una asignación de memoria defectuosa. = ( Lo siento. – ABeanSits

+3

@Marco puede traducir esto en un código rápido por favor –

2

versión Swift:

La titude a la secuencia:

var latitudeText = "\(currentLocation.coordinate.latitude)" 

o

let latitudeText = String(format: "%f", currentLocation.coordinate.latitude) 
Cuestiones relacionadas