Вы передаете двойное число во что-то, что ожидает целое число. Обычно вы ожидаете, что произойдет некоторое усечение, и в результате получится int, но вы не можете гарантировать, что метод setInteger:forKey:
сделает это за вас.
Почему вы умножаете значение вашего слайдера на это явно произвольное число?
Edit:
Чтобы объяснить мой ответ немного больше:
Для сохранения чисел в значениях по умолчанию их необходимо заключить в NSNumber
объекты. setInteger:forKey
и др. - это вспомогательные методы, которые, вероятно, просто берут ваше целое число и создают из него NSNnumber
, используя numberWithInt:
. Я не могу быть уверен на 100%, потому что я не видел код Apple, но я бы предположил, что передача значения double в numberWithInt:
вернет nil, потому что значение double не является целым.