【问题标题】:Storing more than one value of something using User Defaults使用用户默认值存储多个值
【发布时间】:2017-09-22 05:18:25
【问题描述】:

我正在使用 xcode 8 swift 3。我有一个迷你应用程序,我可以在其中计时我可以回答给定问题的时间,我已经让它将我的时间传递给下一个 VC 并实际保存它。我想知道如何保存我进入应用程序的所有时间。

保存分数的按钮

@IBAction func saveScore(_ sender: Any) {
    label.text = label.text
    UserDefaults.standard.set(label.text, forKey: "score")
}

用户默认值部分

override func viewDidAppear(_ animated: Bool) {
    if let x = UserDefaults.standard.object(forKey: "score") as? String {   
        label.text = x
    }
 }

【问题讨论】:

    标签: ios swift xcode8 nsuserdefaults


    【解决方案1】:

    您可以将 DictionaryArray 存储到包含更多值的 UserDefaults

        let dict = ["score": "","userID":"1"] 
        let dict2 = ["score": "","userID":"2"] 
    
        let array = [dict,dict2]
        UserDefaults.standard.set(array, forKey: "scoreCard")
    

    然后像这样获取

    if let x = UserDefaults.standard.array(forKey: "scoreCard") as? [[String:Any]] {
      for  dict in x {
            //DO something 
            yourLabel.text = dict["score"] as! String
    
      }
    }
    

    希望对你有帮助

    【讨论】:

    • @MuhammadZohaibEhsan 已编辑答案
    • @JonSnow 请注意,Swift 3+ 的 Swift 本机字典类型是 [String:Any]
    • 设置时去掉强制转换,检索时将数组转换为[[String: Any]]
    • @LeoDabus 已修复请批准
    • @Jon Snow,对不起,我有一段时间没有上网了。感谢您的帮助,非常感谢!
    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 2019-11-07
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    相关资源
    最近更新 更多