我正在尝试获取UISlider的值并将其存储到CoreData实体的一部分中。
我需要保存的分数将是滑块的值(即slider.value)或10减去滑块的值(即10 - slider.value)
我正在尝试将它放入NSNumber中,当我使用intValue时它工作正常。
当我使用其中任何一个......
score = [NSNumber numberWithInt:slider.value];
...或
score = [NSNumber numberWithInt:10 - slider.value];
它运作完美,我可以在以后回忆这些值而没有任何问题。
但是,我真的需要将值提高到1位小数,但每当我尝试这个时,我就无法让它工作。
我真的不知道从哪里开始。我可以毫无问题地将双值输出到NSLog,但是我无法弄清楚如何将它变成NSNumber。
我似乎总是得到错误“无法转换为指针类型(2)”
非常感谢任何帮助。
由于
答案 0 :(得分:4)
你试过numberWithFloat
:?如果你使用的是int,你当然永远不会得到任何小数位,因为根据定义,整数是一个整数。
答案 1 :(得分:2)
如果您可以在没有问题的情况下NSLog出双值,那么以下方法应该有效:
- (id)initWithDouble:(double)value
答案 2 :(得分:2)
UISlider -value
:是float类型,因此10 - slider.value
给出一个浮点数,numberWithInt:
期望一个int(可能自动转换),但是你想要一个浮动,你应该使用numberWithFloat:
。
但是你的错误“无法转换为指针类型(2)”与精度无关,它更像是一个指针/值的东西。是NSNumber *
类型的分数?或者它只是一个普通的浮动/双?什么行给出了这个错误?也许再提供一些代码。