2010-08-22 75 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