1

我正在尝试获取 UISlider 的值并将其存储到 CoreData 实体的一部分中。

我需要保存的分数要么是滑块的值(即slider.value),要么是10减去滑块的值(即10-slider.value)

我正在尝试将其放入 NSNumber 中,当我使用 intValue 时它可以正常工作。

当我使用任何一个...

score = [NSNumber numberWithInt:slider.value];

或者...

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

它工作得很好,我可以在以后毫无问题地回忆这些值。

但是,我确实需要将值精确到小数点后 1 位,但每当我尝试这个时,我就无法让它工作。

我真的不知道从哪里开始。我可以毫无问题地用 NSLog 输出 doubleValue,但我不知道如何将它输入到 NSNumber 中。

我似乎总是收到错误“无法转换为指针类型 (2)”

任何帮助深表感谢。

谢谢

4

3 回答 3

4

你试过numberWithFloat吗:?如果您使用的是 int,那么您当然不会得到任何小数位,因为根据定义,整数是整数。

于 2010-08-22T21:27:48.657 回答
2

如果你可以 NSLog 没有问题的 doubleValue 出来,那么下面的方法应该可以工作:

- (id)initWithDouble:(double)value
于 2010-08-22T21:33:44.017 回答
2

UISlider -value: 是浮点类型,所以10 - slider.value给出一个浮点数,并且numberWithInt:期待一个 int (可能会自动转换),但是如果你想要一个浮点数,你numberWithFloat:无论如何都应该使用。

但是您的错误“无法转换为指针类型(2)”与精度无关,它更多的是指针/值。是分数类型NSNumber *吗?或者它只是一个普通的浮点数/双精度数?哪一行给出了这个错误?也许给一些更多的代码。

于 2010-08-22T21:39:53.700 回答