NSUserDefault错误。 Int在调用时显示为字符串

时间:2016-12-13 22:05:29

标签: swift nsuserdefaults

我正在开发一个涉及使用NSUserDefaults的应用。我已经成功保存了两个字符串,我正在尝试保存一个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所以,我是新手,但是,任何帮助都表示赞赏。

2 个答案:

答案 0 :(得分:0)

如果您的值为Int,则可以使用(Swift 3)

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

如果Swift 2我相信它是

let numberTwo = numberOne.integerForKey("num")

您可以查看UserDefaults API Reference了解更多详情和更多选项(例如object(forKey:)string(forKey:) ...)

答案 1 :(得分:0)

如果您想将其视为整数值,则应使用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
    }
}