2010-08-22 60 views
1

我試圖獲得UISlider的值並將其存儲到CoreData實體的一部分。iPhone UISlider到NSNumber

比分我需要保存要麼是滑塊的值(即slider.value)或10減去滑塊的值(即10 - slider.value)

我試圖把它成爲一個NSNumber,當我使用intValue它工作正常。

當我使用要麼...

score = [NSNumber numberWithInt:slider.value]; 

或...

score = [NSNumber numberWithInt:10 - slider.value]; 

它完美的作品,我可以在以後的日子,沒有任何問題召回的值。

但是,我真的需要將值設置爲小數點後1位,但每當我嘗試這個時,我都無法讓它工作。

我真的不知道從哪裏開始。我可以NSLog的doubleValue沒有問題,但我無法弄清楚如何將這個到一個NSNumber。

我似乎總是得到錯誤「無法轉換爲指針類型(2)」

任何幫助深表感謝。

感謝

+0

「每當我嘗試這個時,我都無法讓它工作。」 - >你嘗試過什麼? – falconcreek 2010-08-22 21:36:40

回答

4

你試過numberWithFloat:?如果你使用的是int,你當然不會得到任何小數位,因爲一個整數的定義是一個整數。

+0

大聲笑,我幾乎可以肯定,我嘗試過。哦,它現在正在工作!謝謝! 將在5分鐘內接受答案(當計時器用完時)。 – Fogmeister 2010-08-22 21:34:59

2

如果可以的NSLog的的doubleValue出來,沒有問題,那麼下面的方法應該工作:

- (id)initWithDouble:(double)value 
+0

謝謝!這也行得通,但我已經給了湯姆答案,因爲他的回覆是第一次。 再次感謝! – Fogmeister 2010-08-22 21:42:00

2

UISlider -value:是float類型,所以10 - slider.value給人以漂浮,並numberWithInt:期待一個int(這可能會自動轉換),但是如果你想要一個浮點數,你應該使用numberWithFloat:

但是,您的錯誤「無法轉換爲指針類型(2)」與精度無關,它更像是一個指針/值的東西。是NSNumber *類型的得分?或者它只是一個普通的浮動/雙重?什麼行給出這個錯誤?也許再提供一些代碼。

+0

謝謝,我試圖使用NumberWithFloat:[slider.value floatValue] 這是導致錯誤。現在排序雖然:D 謝謝! – Fogmeister 2010-08-22 21:43:18