2015-07-28 3 views
0

Я не могу установить атрибут объекта, как это:Невозможно установить NSNumber numberWithFloat

NSLog(@"setting: %f", tempVal); 
self.device.mainProperty.wanted = [NSNumber numberWithFloat:tempVal]; 
NSLog(@"set: %f", self.device.mainProperty.wanted.floatValue); 

Это дает мне следующий вывод:

2015-07-28 17:18:24.775 App[5488:1480266] setting: 4.500000 
2015-07-28 17:18:24.775 App[5488:1480266] set: 4.000000 

Я получаю полностью разочарован в этом, Это не имеет никакого смысла для меня. Но, возможно, кто-то может мне помочь. Спасибо

EDIT: Я использую этот код для чего-то, где он использует только целое число. Тогда все работает отлично.

+0

Укажите тип "wanted"? – dfinki

+0

Это NSNumber –

+1

Просто протестированный в новом проекте, код работает отлично. Можете ли вы предоставить больше контекста? Например, объявления 'tempVal' и' self.device.mainProperty.wanted'? Попробуйте уменьшить свой код до минимального примера, воспроизводящего проблему. –

ответ

0

Итак, я являюсь derp в конце долгого рабочего дня. Я забыл, что NSNumber «хотел» был Integer из хранилища основных данных. И, видимо, когда вы устанавливаете float для этого атрибута, он автоматически преобразует его в целое число, даже если я не сохранил его в хранилище данных или что-то еще. После тяжелой миграции данных все было хорошо. Чем больше вы владеете

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

  • Нет связанных вопросов^_^