0

У меня возникают странные результаты, пытаясь сохранить значение 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; 

Хотя я не думаю, что это имеет значение, число инициализируется в классе teaminit метод (который, безусловно, называется):

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 

я ожидал бы два числа, чтобы быть тоже самое. Почему они разные?

+0

Где-то, кажется, что вы могли бы быть переинициализации вашего xExpectedScore вара, который вызывает его:

self.team = [[WhateverObject alloc]init]; 

, то вы можете присвоить значения его атрибут объявления, такие как для отображения в виде 0. Вам не нужно инициализировать NSNumber var, если вы собираетесь быть чем-то вроде этого позже "[NSNumber numberWithFloat: оценкамScoreSlider.value]", поскольку это возвращает экземпляр NSNumber, который инициализирует этот var для вас без вас необходимо вызвать метод инициализации alloc. Попробуйте удалить эти инструкции для этого var и отчитаться. – dhint4

+5

NSLog (@ "% @", команда); Готов поспорить, что вы стоили 213,47 доллара, что он равен нулю. – danh

ответ

1

А как насчет команды? Похоже, что ваш объект команды не инициализирован, потому что вы испытываете ноль поведения NSNumber, видя 0.00, который является значением float nil NSNumber?

Вы должны сначала бежать:

team.nExpectedScore = [NSNumber numberWithFloat:estimatedScoreSlider.value]; 
+0

Спасибо, что это было. Я случайно установил команду для ссылки на нулевой объект – Iowa15

Смежные вопросы