我有奇怪的結果試圖存儲浮點值到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變種,這是造成它:
那麼你可以給它的attibutes如賦值如果你以後會這樣「[NSNumber numberWithFloat:estimatedScoreSlider.value]」,你不需要初始化一個NSNumber var,因爲它會返回一個NSNumber的實例,該實例在沒有你的情況下爲你初始化這個var必須調用alloc init方法。嘗試刪除那些var的語句並回報。 – dhint4 2015-02-07 22:17:43
NSLog(@「%@」,team);我敢打賭你213.47美元,它是空的。 – danh 2015-02-07 22:31:30