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

这是我的数组

[
    {
        "Description" : null,
        "Message" : null,
        "vmanager_account" : "True",
        "user_id" : "174",
        "login_name" : "ssrikanth",
        "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 版本。

标签: arrays json swift uitableview nsuserdefaults


【解决方案1】:

环境:Xcode 8 和 Swift 3.0

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

let arrInfo: [Dictionary<String,Any>] =
                  [["Description":"Hello",
                    "Message":"Message",
                    "vmanager_account":"vmanager_account",
                    "user_id" : "174",
                    "login_name" : "ssrikanth",
                    "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 行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2017-11-05
  • 2018-11-19
  • 1970-01-01
相关资源
最近更新 更多