如何将数组传递给 nsuserdefaults 并在 tableview 的一个部分中使用它们

Posted

技术标签:

【中文标题】如何将数组传递给 nsuserdefaults 并在 tableview 的一个部分中使用它们【英文标题】:How to pass array to nsuserdefaults and use them in a section in tableview 【发布时间】:2016-12-08 06:04:42 【问题描述】:

这是我的数组

[
    
        "Description" : null,
        "Message" : null,
        "vmanager_account" : "True",
        "user_id" : "174",
        "login_name" : "s-s-rikanth",
        "user_name" : "Surya Srikanth",
        "owner_id" : "1",
        "user_email" : "cserafimescu@vcomsolutions.com",
        "customer_id" : "20",
        "vmanager_cc" : "True",
        "vmanager_tp" : "True",
        "customer_name" : "vCom Solutions",
        "is_so" : "0"
    
]

我需要将“customer id”、“user_name”、“user_email”存储在一个数组中(nsuserdefaults)并将它们传递给另一个控制器(tableview 部分)

//从 tableviewcontroller 中的 NSUserdefaults 中检索到的值。现在我需要在一个数组中传递这些值,如果 tableview 显示在第 1 部分中。

//Retreiving Username
    let defaults = UserDefaults.standard
    if  let usernameRetrieved = defaults.string(forKey: "userNameKey")
    
        print("got username in side menu: \(usernameRetrieved)")

    

    //Retreiving CustomerName
    let defaults1 = UserDefaults.standard
    if let customerNameRetrieved = defaults1.string(forKey: "customerNameKey")
    
        print("got Customer Name in side menu: \(customerNameRetrieved)")

    

    //Retreiving User Email Id
    let defaults2 = UserDefaults.standard
    if let emailIDRetrieved = defaults2.string(forKey: "userEmailKey")
    
        print("got Email Id in side menu: \(emailIDRetrieved)")

    

【问题讨论】:

这是字典而不是数组。 是的。我需要将提到的值保存在一个数组中,并将它们显示在 tableview 的一个部分中。知道怎么做吗? 你有什么尝试? 我不确定如何从响应中检索特定值,存储在数组中,将其保存到 nsuserdefaults,并在 tableview 中使用它 然后显示代码您如何检索此响应并指定您的 swift 版本。 【参考方案1】:

环境:Xcode 8 和 Swift 3.0

我根据您的要求创建了相同的结构。

let arrInfo: [Dictionary<String,Any>] =
                  [["Description":"Hello",
                    "Message":"Message",
                    "vmanager_account":"vmanager_account",
                    "user_id" : "174",
                    "login_name" : "s-s-rikanth",
                    "user_name" : "Surya Srikanth",
                    "owner_id" : "1",
                    "user_email" : "cserafimescu@vcomsolutions.com",
                    "customer_id" : "20",
                    "vmanager_cc" : "True",
                    "vmanager_tp" : "True",
                    "customer_name" : "vCom Solutions",
                    "is_so" : "0"]]

将数组存储在UserDefaults

    let userDefault = UserDefaults.standard
    userDefault.setValue(arrInfo, forKey: "storeArray")
    userDefault.synchronize()

UserDefaults 检索数组。

    if((UserDefaults.standard.array(forKey: "storeArray")) != nil)
        let getArray = (UserDefaults.standard.array(forKey: "storeArray") as! [Dictionary<String,Any>])

        let dict = getArray[0]
        print("Customer ID : ",dict["customer_id"])
    

希望对你有用!!!

【讨论】:

其实我在 Logincontroller 中保存了详细信息。我在 Tableview 控制器中检索了它,因为我需要在 tableview 的第一部分中使用 3 个值。我需要将 3 个值存储在一个数组中并显示在该部分中 您需要从保存的详细信息中获取 tableview 的第一部分的 3 条记录,对。 "customer_name" : "vCom Solutions", "user_name" : "Surya Srikanth", "user_email" : "cserafimescu@vcomsolutions.com",这些值,我需要显示在 tableview 的第一部分我已经从登录控制器中检索了它。现在我必须将它保存在一个数组中并传递给部分行 所以你可以直接从 dict 获取这些值。因为我已经在回答中显示了客户 ID。 我不确定如何将其添加到 tableviewsection 行

以上是关于如何将数组传递给 nsuserdefaults 并在 tableview 的一个部分中使用它们的主要内容,如果未能解决你的问题,请参考以下文章

如何通过数组将数据传递给表格视图?

如何将 opencv Mat 类型传递给 Python 并返回一个数组?

如何将 Excel 数组公式传递给 VBA UDF?

如何将 NSArray 传递给 JavaScript 文件并在 JavaScript 中打印该数组?

如何将道具传递给递归子组件并保留所有道具

如何将第二个viewcontroller文本字段值传递给第一个viewcontroller数组并在swift4中点击按钮时关闭