Быстрая загрузка из userDefaults в UItextfield.text

Я пытаюсь получить значение Int из пользовательского значения по умолчанию и показать его в поле ввода, но я продолжаю получать фатальную ошибку: неожиданно найдено nil при развертывании необязательного значения, оно должно быть неправильно размещено! или же ? где-то в этом коде. Я уже использовал часы :-(

func LoadFromDefaultDistances(){
            if let v = defaults.objectForKey("DriverMin") as? NSInteger {
                inputDriverMin.text = String(defaults.objectForKey("DriverMin") as! NSInteger)
            }
        }

person Bidstrup    schedule 07.06.2015    source источник
comment
Что такое значения по умолчанию? Как он инициализируется. Если v не равно нулю, вы можете использовать его внутри оператора if - нет необходимости снова получать объект из значений по умолчанию. Если ваша ошибка возникает внутри оператора if, проверьте свой ярлык. Кажется, на данный момент это ноль.   -  person HorseT    schedule 07.06.2015
comment
Я случайно написал Label, но имел в виду Textfield   -  person HorseT    schedule 07.06.2015


Ответы (1)


Используйте этот код, чтобы сохранить значение.

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Your in value", forKey: "myIntValue")
defaults.synchronize()

И используйте этот код, чтобы получить его обратно.

let defaults = NSUserDefaults.standardUserDefaults()
if let theInt = defaults.stringForKey("myIntValue")
{
inputDriverMin.text = theInt
}
person Mr UziBazooka    schedule 07.06.2015
comment
HorseT, я думаю, что defaults.synchronize() нужен только в iOS 7 и более ранних версиях? Прочтите, где это может даже замедлить работу вашей программы в iOS 8 и более поздних версиях. - person Mr UziBazooka; 07.06.2015
comment
... автоматически вызывается через определенные промежутки времени... Да, он сохранит ваши данные, но если ваш пользователь выйдет из приложения, не гарантируется, что он уже будет синхронизирован. - person HorseT; 07.06.2015