2016-12-13 58 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:) ...)