2016-12-13 55 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

因爲你問字符串,它給你stringForKey' –

+0

您正在比較蘋果('String')和橙子('Int'),並且從不使用'setValue:forKey'和用戶默認值。 – vadian

回答

0

如果您想將其視爲整數值, ULD集(保存),並獲得價值爲整數,通過使用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") 

如果斯威夫特2我相信這是

let numberTwo = numberOne.integerForKey("num") 

你可以看看UserDefaults API Reference更多詳細信息和更多選項(如object(forKey:)string(forKey:) ...)