Convertir une chaîne en double pour coordonner l'utilisation, Xcode

J'ai une liste de longitudes et de latitudes dans un fichier XML. Je peux imprimer la lat et lon comme une chaîne de caractères, mais quand je convertir la chaîne en double-je obtenir 0.

Voici mon code:

NSString *latstring = [[NSString alloc] initWithString:theList.lat] ;
NSString *lonstring = [[NSString alloc] initWithString:theList.lon];
NSLog(@"latstring: %@, lonstring: %@", latstring, lonstring);

double latdouble = [latstring doubleValue];
double londouble = [lonstring doubleValue];
NSLog(@"latdouble: %g, londouble: %g", latdouble, londouble);

Lorsque je me connecte 'latstring" et "lonstring" je obtenir les coordonnées correctes cependant lorsque je me connecte 'latdouble" et "londouble" je reçois 0.

J'ai besoin de la lat et lon valeurs en double afin que je puisse les utiliser dans une mapview qu'il ne sera pas me permettre d'utiliser une chaîne de caractères pour les coordonnées.

Il y a probablement une explication très simple pour cela est toutefois je suis assez nouveau à l'objective-c et ne peut pas sembler trouver une solution pour cela.

Toute aide est très appréciée.

  • Ce n' NSLog(@"latstring: %@, lonstring: %@", latstring, lonstring); de les afficher?
  • La console affiche: 2012-07-25 12:10:28.720 XMLTest2[4851:707] latstring: 55.035966, lonstring: -1.710799 2012-07-25 12:10:28.721 XMLTest2[4851:707] latdouble: 0, londouble: 0
  • La conversion et la mise en forme sont certainement OK. Par exemple, NSLog(@"lat: %g, lon: %g", [@"55.035966" doubleValue], [@"-1.710799" doubleValue]); fonctionne très bien (à l'exclusion de l'arrondissement). Essayez de vous connecter à la longueur des chaînes, juste avant la double conversion pour voir si il ya des caractères non-imprimables de causer des ennuis.
  • Lorsque je me connecte la longueur: NSLog(@"latstring longueur: %i, lonstring longueur: %i", latstring.longueur, lonstring.la longueur); j'obtiens: 'latstring longueur: 10, lonstring longueur: 10'
  • Est-ce exact? Je ne peux pas dire s'il est censé être à la tête d'espaces (ce qui devrait être OK) ou d'une autre de caractère supplémentaire.
  • Non, je pense qu'il devrait être seulement 9 caractères. Mon fichier xml ressemble à ceci: <Taxi> <nom>Taxis de l'Aéroport</nom> <nombre>01912146969</nombre> <adresse>l'Aéroport International de Newcastle, Woolsington, Newcastle</adresse> <lat>55.035966</lat> <lon>-1.710799<lon> </Taxi> Pourrait le problème de rester ici? J'ai essayé de créer la lat et lon propriétés de "theList" comme double plutôt que de la chaîne, par contre j'ai encore jusqu'à la fin avec zéro quand je les enregistre.
  • Il pourrait être le contenu de XML et il pourrait être quelque chose sur la façon dont les valeurs sont mises en theList. Il est difficile de dire en regardant ce qui est imprimé; vous pouvez avoir besoin de suivre les données avec le débogueur ou d'examiner les caractères individuels qui sont mis en theList.lat (par exemple).
  • Une astuce pour le débogage: Lors de l'impression de sortir des chaînes que vous essayez de vérifier la valeur d'essayer de les emballer dans des marqueurs de sorte que vous êtes sûr que les caractères qui viennent d'eux et qui viennent de le débogueur de texte. par exemple NSLog(@"Coords comme des chaînes de caractères sont (%@,%@)",theList.lat,theList.lon);

InformationsquelleAutor | 2012-07-25