【问题标题】:NSUserDefaults not saving data (Swift)NSUserDefaults 不保存数据(Swift)
【发布时间】:2015-10-12 14:05:50
【问题描述】:

我正在尝试使用 NSUserDefaults 保存来自各种文本字段的输入:

@IBAction func continue2save(sender: AnyObject) {

    let stringy1: NSString = mcweightTF.text!
    let stringy2: NSString = mcnumTF.text!

    NSUserDefaults.standardUserDefaults().setObject(stringy1, forKey: "savemcw")

    NSUserDefaults.standardUserDefaults().setObject(stringy2, forKey: "savemcn")

    NSUserDefaults.standardUserDefaults().synchronize()


}

@IBAction func calculate(sender: AnyObject) {

    let load1: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("savemcw")

    calcLabel.text = String(load1)

}

但是“load1”的值始终为零。我尝试了几乎所有通过 NSUserDefaults 实现短期存储的配置,但是存储的值始终为零。

【问题讨论】:

  • 尝试改为:let load1 = NSUserDefaults.standardUserDefaults().objectForKey("savemcw") as? String
  • 这段代码没什么特别的。它适用于示例应用程序,值不为零。
  • @Arbitur NSUserDefaults 有一个名为 stringForKey 的特定方法

标签: swift nsstring swift2 nsuserdefaults


【解决方案1】:

试试这个,

 @IBAction func continue2save(sender: AnyObject) {

    let stringy1 = mcweightTF.text!
    let stringy2 = mcnumTF.text!

    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setObject("stringy1", forKey: "savemcw")
    defaults.setObject("stringy2", forKey: "savemcn")
}

@IBAction func calculate(sender: AnyObject) {

    let defaults = NSUserDefaults.standardUserDefaults()
    let stringy1 = defaults.stringForKey("savemcw")
    // Optional Chaining for stringy1
    if let stringy = stringy1 {
        calcLabel.text = stringy
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 2015-06-15
    • 2013-11-13
    相关资源
    最近更新 更多