iPhone UISlider для NSNumber - PullRequest
       0

iPhone UISlider для NSNumber

1 голос
/ 23 августа 2010

Я пытаюсь получить значение UISlider и сохранить его в части сущности CoreData.

Балл, который мне нужно сохранить, будет либо значением ползунка (т.е. slider.value), либо 10 минус значение ползунка (т.е. 10 - slider.value)

Я пытаюсь поместить его в NSNumber, и когда я использую intValue, он отлично работает.

Когда я использую либо ...

score = [NSNumber numberWithInt:slider.value];

или ...

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

работает отлично, и я могу вспомнить значения позже без проблем.

Однако мне действительно нужно получить значение с точностью до 1 десятичного знака, но всякий раз, когда я пытаюсь это сделать, я просто не могу заставить его работать.

Я действительно даже не знаю, с чего начать. Я могу без проблем вывести NSVL из двойного значения, но не могу понять, как получить это в NSNumber.

Кажется, я всегда получаю сообщение об ошибке "Не удается преобразовать в тип указателя (2)"

Любая помощь очень ценится.

Спасибо

Ответы [ 3 ]

4 голосов
/ 23 августа 2010

Вы пробовали numberWithFloat :? Если вы используете int, вы, конечно, никогда не получите десятичных знаков, потому что целое число по определению - это целое число.

2 голосов
/ 23 августа 2010

UISlider -value: имеет тип float, поэтому 10 - slider.value дает число с плавающей запятой, а numberWithInt: ожидает int (который может разыграть автоматически), но если вы хотите использовать float, вы должны использоватьnumberWithFloat: в любом случае.

Но ваша ошибка "Невозможно преобразовать в тип указателя (2)" не связана с точностью, это скорее указатель / значение.Является ли оценка типа NSNumber *?Или это просто обычный float / double?Какая строка выдает эту ошибку?Может быть, дайте еще код.

2 голосов
/ 23 августа 2010

Если вы можете NSL вывести doubleValue без проблем, тогда должен работать следующий метод:

- (id)initWithDouble:(double)value
...