У меня возникают странные результаты, пытаясь сохранить значение float в NSNumber. Кажется, что оно правильно хранится (или правильно печатается). Я чувствую, что это глупая ошибка, но я не знаю, что я делаю неправильно. Вот мой код:Хранение поплавка в NSNumber дает странные результаты
team.nExpectedScore = [NSNumber numberWithFloat:estimatedScoreSlider.value];
NSLog(@"%f", estimatedScoreSlider.value);
NSLog(@"%f", [team.nExpectedScore floatValue]);
где nExpectedScore
является синтезированный свойство team
класса объявлен так:
@property (strong, nonatomic) NSNumber *nExpectedScore;
Хотя я не думаю, что это имеет значение, число инициализируется в классе team
init
метод (который, безусловно, называется):
nExpectedScore = [[NSNumber alloc] init];
Также estimatedScoreSlider
является UISlider
с диапазоном от 0 до 500. При всем этом, два NSLog
заявления печатать следующее со случайным положением ползунка:
2015-02-07 15:32:43.442 APP_NAME[3013:126937] 213.474030
2015-02-07 15:32:43.442 APP_NAME[3013:126937] 0.000000
я ожидал бы два числа, чтобы быть тоже самое. Почему они разные?
Где-то, кажется, что вы могли бы быть переинициализации вашего xExpectedScore вара, который вызывает его:
, то вы можете присвоить значения его атрибут объявления, такие как для отображения в виде 0. Вам не нужно инициализировать NSNumber var, если вы собираетесь быть чем-то вроде этого позже "[NSNumber numberWithFloat: оценкамScoreSlider.value]", поскольку это возвращает экземпляр NSNumber, который инициализирует этот var для вас без вас необходимо вызвать метод инициализации alloc. Попробуйте удалить эти инструкции для этого var и отчитаться. – dhint4
NSLog (@ "% @", команда); Готов поспорить, что вы стоили 213,47 доллара, что он равен нулю. – danh