2009-08-25 16 views
10

Bonjour Stacked-Experts!Génération d'une chaîne à partir de CLLocationDegrees, par ex. dans NSLog ou StringWithFormat

Ma question: Comment générer une chaîne à partir d'une valeur CLLocationDegrees?

tentatives échouées:

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]; 

Quand je regarde dans la définition des CLLocationDegrees il indique clairement que c'est un double:

typedef double CLLocationDegrees; 

Qu'est-ce que je manque ici? Cela me rend fou ... S'il vous plaît aidez-moi à sauver mon esprit!

Merci d'avance et meilleures salutations. // Abeansits

Répondre

33

Ce sont corrects:

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

Ceci est faux, car coordinate.latitude n'est pas un objet comme NSString peut attendre.

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

Si vous voulez un NSString:

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

ou

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

Marco

+0

Merci Marco! C'est tellement vrai. Mon erreur résidait dans une allocation de mémoire défectueuse. = ( Désolé pour cela – ABeanSits

+3

@Marco pouvez-vous traduire cela en code rapide plz –

2

Version Swift:

La titude à cordes:

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

ou

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