【问题标题】:How to for loop in userDefaults swift如何在userDefaults swift中进行for循环
【发布时间】:2017-07-06 09:48:57
【问题描述】:

我使用 2 个文本字段作为字符串,字符串将数据保存到 userDeafults 但我想知道如何检索所有数据以使用循环或函数显示

    let save = UserDefaults.standard

    let heading = headingText.text
    let description = desxriptionTexr.text
    save.set(description, forKey: heading!)

【问题讨论】:

  • 我认为这不是正确的做法。您可以在下面阅读我的答案
  • 您的问题的可能答案:click here
  • 请检查我的答案

标签: ios iphone swift xcode


【解决方案1】:

要获取UserDefaults中的所有键和对应的值,可以使用:

for (key, value) in UserDefaults.standard.dictionaryRepresentation() {
            print("\(key) = \(value) \n")
}

swift 3 中,您可以使用以下方式存储和检索:

UserDefaults.standard.setValue(token, forKey: "user_auth_token")
print("\(UserDefaults.standard.value(forKey: "user_auth_token")!)")

【讨论】:

    【解决方案2】:

    我认为这不是正确的做法。

    我建议您将值放入字典并将字典设置为 UserDefaults。

    let DictKey = "MyKeyForDictionary"
    var userDefaults = UserDefaults.standard
    
    // create your dictionary
    let dict: [String : Any] = [
        "value1": "Test",
        "value2": 2
    ]
    
    // set the dictionary
    userDefaults.set(dict, forKey: DictKey)
    
    // get the dictionary
    let dictionary = userDefaults.object(forKey: DictKey) as? [String: Any]
    
    // get value from
    let value = dictionary?["value2"]
    
    
    // iterate on all keys
    guard let dictionary = dictionary else {
        return
    }
    for (key, val) in dictionary.enumerated() {
    
    }
    

    【讨论】:

      【解决方案3】:

      如果你有多个字符串,只需将值保存为数组

      UserDefaults.standard.set(YourStringArray, forKey: "stringArr")
      
      let arr = UserDefaults.standard.stringArray(forKey: "stringArr")
      
      for s in arr! {
          //do stuff
      }
      

      【讨论】:

        【解决方案4】:

        在这里,您将键设置为标题,将值设置为描述。 您可以使用UserDefaults.standard.object(forKey:)UserDefaults.standard.string(forKey: )UserDefaults.standard.value(forKey: ) 等函数从 userDefaults 中检索值。

        所以最好为 2 个不同的键保存标题和描述

        let save = UserDefaults.standard
        let heading = headingText.text
        let description = desxriptionTexr.text
        save.set(description, forKey: "description")
        save.set(heading, forKey: "heading")
        

        你可以像这样检索

         let description = UserDefaults.standard.string(forKey:"description")
         let heading = UserDefaults.standard.string(forKey:"heading")
        

        【讨论】:

        • 还有string(forKey:
        • 我只是把它作为一般。我已经更新了答案。感谢您的反馈。
        猜你喜欢
        • 2018-05-12
        • 1970-01-01
        • 1970-01-01
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多