1

UISlider の値を取得して CoreData エンティティの一部に格納しようとしています。

保存する必要があるスコアは、スライダーの値 (つまり、slider.value) または 10 からスライダーの値を引いたもの (つまり、10 - slider.value) のいずれかになります。

私はそれを NSNumber に入れようとしていますが、intValue を使用すると正常に動作します。

どちらかを使うと…

score = [NSNumber numberWithInt:slider.value];

また...

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

それは完全に機能し、後日値を問題なく思い出すことができます。

ただし、実際には値を小数点以下1桁にする必要がありますが、これを試みるたびに機能しません。

私は本当にどこから始めるべきかさえ知りません。doubleValue を問題なく NSLog できますが、これを NSNumber に入れる方法がわかりません。

「ポインター型に変換できません (2)」というエラーが常に発生するようです。

どんな助けでも大歓迎です。

ありがとう

4

3 に答える 3

4

試しましたnumberWithFloatか?int を使用している場合、整数は定義上整数であるため、もちろん小数点以下の桁数は取得されません。

于 2010-08-22T21:27:48.657 に答える
2

doubleValueを問題なくNSLogアウトできる場合は、次のメソッドが機能するはずです。

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

UISlider -value:はfloat型なので10 - slider.value、floatを与え、numberWithInt:int(自動的にキャストされる可能性があります)を期待していますが、floatが必要な場合は、numberWithFloat:とにかく使用する必要があります。

ただし、「ポインタタイプ(2)に変換できません」というエラーは精度に関係するものではなく、ポインタ/値の問題です。タイプのスコアNSNumber *ですか?それとも単なるフロート/ダブルですか?このエラーを引き起こす行は何ですか?たぶん、もう少しコードを与えてください。

于 2010-08-22T21:39:53.700 に答える