2015-02-07 114 views
0

我有奇怪的結果試圖存儲浮點值到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];

此外,estimatedScoreSliderUISlider從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]; 

那麼你可以給它的attibutes如賦值如果你以後會這樣「[NSNumber numberWithFloat:estimatedScoreSlider.value]」,你不需要初始化一個NSNumber var,因爲它會返回一個NSNumber的實例,該實例在沒有你的情況下爲你初始化這個var必須調用alloc init方法。嘗試刪除那些var的語句並回報。 – dhint4 2015-02-07 22:17:43

+5

NSLog(@「%@」,team);我敢打賭你213.47美元,它是空的。 – danh 2015-02-07 22:31:30

回答

1

團隊呢?看起來你的團隊對象沒有被初始化,因爲你正在經歷一個零的NSNumber行爲,通過查看0.00這是一個零NSNumber的浮點值?

您需要先運行:

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

謝謝,就是這樣。我不小心設置了團隊來引用一個零對象 – Iowa15 2015-02-08 16:56:24