Выпуск iPhone с плавающей точкой на строку - PullRequest
0 голосов
/ 21 декабря 2009

Я не могу прожить еще один день, не зная, почему это происходит. У меня есть приложение для iPhone, использующее Corelocation, и вот проблема:

GPSLocation.m - отправляет координаты long / lat, которые являются плавающими в классе UserSettings.m (который является одиночным класс)

_

UserSettings.m - Затем приведите значения в предопределенные строки из float

например. strLongitude = [NSString stringWithFormat: @ "% f", paramLong];

Я могу отлично отследить строку NSLog (@ "Longitude string is% @", strLongitude);

Некоторые заметки о strLongitude

  1. находится в заголовочном файле
  2. свойство определяется как (неатомное, сохранить)
  3. синтезируется

Теперь проблема: Когда мне нужна эта переменная в другом классе, я могу использовать один из двух методов ее получения. Либо получателем [UserSettings getLongitude], либо обращайтесь к свойству [UserSettings strLongitude]

Затем, когда я прослеживаю эту строку, я иногда получаю ошибку плохого доступа или случайный мусор. Если я вычеркну строку как число с плавающей запятой% F, она будет работать нормально

Почему это происходит? По умолчанию строка возвращается к исходному типу данных переменной.

Буду признателен за любую помощь.

Ответы [ 3 ]

2 голосов
/ 22 декабря 2009

strLongitude может потребоваться сохранить.

1 голос
/ 22 декабря 2009

Я понимаю, что это не отвечает непосредственно на ваш вопрос, но зачем хранить координаты в строках?

Почему бы не хранить их как, ну, как поплавки? Например,

@interface UserSettings
{
    float longitude;
}

@property (nonatomic, assign) float longitude;

@end

Кроме того, ваш класс UserSettings звучит очень похоже на NSUserDefaults ...

1 голос
/ 21 декабря 2009

Звучит так, как будто какой-то код случайно вызывает сеттер с аргументом float.

...