【问题标题】:NSUserDefaults Displaying Stored Data [duplicate]NSUserDefaults 显示存储的数据
【发布时间】:2016-03-02 13:17:07
【问题描述】:

我正在尝试采用NSUserDefaults.standardUserDefaults 将数据存储到 iOS 设备的路线。我知道这不是最好的方法,但我只是在尝试练习(我知道当您重新启动模拟器或从设备中删除应用程序时数据会被删除)。我的主要目标是获取存储在 iOS 设备中的数据,然后在提交后将其拉回显示在另一个视图控制器上。我认为我可以将它显示为标签,但是当存储并拉入不同的视图控制器时,我仍然无法回忆起该信息。很抱歉,如果这不是足够的信息,如果需要,我可以提供更多。

我正在将值输入到文本字段中

@IBOutlet weak var userNameTextField: UITextField!

然后我用按钮提交数据

@IBAction func submitButton(sender: AnyObject) {
    let userName = userNameTextField.text;
    NSUserDefaults.standardUserDefaults().setObject(userName, forKey: "userName")
    NSUserDefaults.standardUserDefaults().synchronize()
}

同步是必要的还是仅在提交多个文本字段时才需要?

再次,我只想获取提交的数据并能够在另一个视图控制器页面上查看/查看/显示它。

【问题讨论】:

  • 您面临的问题是什么?
  • 同步是个好主意,因为没有它,信息会“定期”写入持久存储。如果您的应用在没有同步的情况下终止,您的数据可能在下次启动时不可用。
  • 存储数据没有问题。我只想提取存储的数据。例如,我想查看作为常量用户名输入的任何内容,并在他们单击提交时将其显示在另一个视图控制器上,显示名称。并感谢同步建议。
  • 好的,我会努力做的,这样我就可以把它打印成标签了,谢谢你的帮助
  • 您的问题表明您无法回忆来自NSUserDefaults 的信息。用您尝试过的方法更新您的问题,并解释您遇到的问题。

标签: ios swift nsuserdefaults


【解决方案1】:

要保存然后检索数据,您需要执行以下操作:

 let textToSave = userNameTextField.text;
 let defaults = NSUserDefaults.standardUserDefaults()
 defaults.setObject(textToSave, forKey: "myKey")

然后检索它并将标签文本设置为(例如)这样做:

let defaults = NSUserDefaults.standardUserDefaults()
myLabel.text = defaults.stringForKey("myKey")

stringForKey 方法返回您之前保存在该键中的任何内容

【讨论】:

  • 谢谢,这正是我所需要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
相关资源
最近更新 更多