Je ne peux pas vivre un autre jour sans savoir pourquoi cela se produit. J'ai une application iPhone en utilisant CoreLocation et voici la question:IPhone Float to String numéro
GPSLocation.m - envoie latitude/longitude coordonnées qui sont flotteurs à la classe UserSettings.m (ce qui est une classe singleton )
_
UserSettings.m - Rabattre ensuite les valeurs dans une des chaînes prédéfinies d'un flotteur
par exemple. strLongitude = [NSString stringWithFormat: @ "% f", paramLong];
Je peux tracer la chaîne juste bien NSLog (@ "Chaîne de longitude est% @", strLongitude);
Quelques notes sur strLongitude
- est dans le fichier d'en-tête
- propriété est définie comme (nonatomic, retain)
- est synthétisé
Maintenant le problème: Lorsque j'ai besoin de cette variable dans une autre classe, je peux utiliser l'une des deux méthodes pour l'obtenir. Soit par un getter [UserSettings getLongitude] ou accéder à la propriété [UserSettings strLongitude]
Ensuite, quand je trace ensuite cette chaîne, je reçois parfois une erreur badaccess ou une poubelle aléatoire. Si je trace la chaîne comme un float% F cela fonctionne très bien.
Pourquoi cela se produit-il? La chaîne retourne par défaut au type de données d'origine de la variable.
Toute aide serait appréciée.
est! @property (nonatomic, retain) NSString * strLongitude; –
Mais vous devez utiliser self: self.strLongitude = [NSString stringWithFormat: @ "% f", paramLong]; pour invoquer le setter (qui le conserve). Juste pour les coups de pied, essayez: strLongitude = ...; [strLongitude conserver]; et voyez s'il y a une différence. – Jeff
BINGO! Je n'ai pas invoqué le setter. self.strLongitude a très bien fonctionné. Merci mec! –