簡體   English   中英

如何在Swift中從UserDefaults檢索字符串?

[英]How to retrieve string from UserDefaults in Swift?

我有一個textField供用戶輸入其名稱。

 @IBAction func nameTextField(sender: AnyObject) {

    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setObject("\(nameTextField)", forKey: "userNameKey")


}

然后,我使用以下命令回憶在ViewDidLoad中輸入的名稱:

 NSUserDefaults.standardUserDefaults().stringForKey("userNameKey")

    nameLabel.text = "userNameKey"

我究竟做錯了什么? 結果每次只是“ userNameKey”。 我是新來的,謝謝!

您只需要將nsuserdefaults方法返回的結果分配給您的nameLabel.text。 除此之外, stringForKey還返回一個可選值,因此,我建議使用nil合並運算符返回一個空字符串,而不是nil,以防止崩潰,如果您在將任何值分配給鍵之前嘗試加載它的話。

func string(forKey defaultName: String) -> String?

返回值對於字符串值,與指定鍵關聯的字符串。 對於數字值,為數字的字符串值。 如果默認值不存在或者不是字符串或數字值,則返回nil。

特殊注意事項即使最初設置的值是可變字符串,返回的字符串也不可變。

您必須遵循以下條件:

UserDefaults.standard.set("textToSave", forKey: "userNameKey")

nameLabel.text = UserDefaults.standard.string(forKey: "userNameKey")  ?? ""

您需要做的是:

@IBAction func nameTextField(sender: AnyObject) {
    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.set(yourTextField.text, forKey: "userNameKey")
}

然后在viewDidLoad中:

let defaults = NSUserDefaults.standardUserDefaults()

let yourValue = defaults.string(forKey: "userNameKey")

nameLabel.text = yourValue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM