我在尝试将浮点值存储到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
我希望这两个数字相同。他们为什么不同?
答案 0 :(得分:1)
团队怎么样?看来你的团队对象没有被初始化,因为你遇到了NSNumber的nil行为,看到0.00这是一个nil NSNumber的浮点值?
您需要先运行:
self.team = [[WhateverObject alloc]init];
然后您可以为其分配值,例如:
team.nExpectedScore = [NSNumber numberWithFloat:estimatedScoreSlider.value];