2016-12-13 7 views
0

Я работаю над приложением, которое связано с использованием NSUserDefaults. Я успешно сохранил две строки, и в настоящее время я пытаюсь сохранить int.Ошибка NSUserDefault. Int появляется как строка при вызове

Это код

var number = Int(0) 

override func viewDidLoad() { 
    super.viewDidLoad() 

let numberOne = NSUserDefaults.standardUserDefaults() 
    numberOne.setValue(number, forKey: "num") 

let numberTwo = numberOne.stringForKey("num") 

if numberTwo > 1 
    { 
     //will insert code later 
    } 

моя ошибка в том, что NUMBERTWO появляется в виде строки. Это мой первый эксперимент с NSUserDefault, поэтому я новичок, но любая помощь приветствуется.

+0

, кажется, вы просите строковое представление, таким образом, вы получите: stringForKey – Volker

+1

, потому что вы спрашиваете строку так это даст вам string with 'stringForKey' –

+0

Вы сравниваете яблоки (' String') с апельсинами ('Int') и никогда не используете' setValue: forKey' с пользовательскими значениями по умолчанию. – vadian

ответ

0

В случае, если вы хотите рассматривать его как целочисленное значение, вы sho пакетирования набор (сохранение) и получить значение как целое число, используя setInteger:forKey: и integerForKey::

var number = Int(0) 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let numberOne = NSUserDefaults.standardUserDefaults() 
    numberOne.setInteger(number, forKey: "num") 

    let numberTwo = numberOne.integerForKey("num") // 0 

    if numberTwo > 1 
    { 
     //will insert code later 
    } 
} 
+0

Спасибо! работал как шарм. – NICK

0

Если значение является Int вы можете получить его с помощью (Swift 3)

let numberTwo = numberOne.integer(forKey: "num") 

Если Swift 2 Я считаю, что это был

let numberTwo = numberOne.integerForKey("num") 

Вы посмотрите на UserDefaults API Reference для более может подробности и другие варианты (например, object(forKey:), string(forKey:) ...)