如何将数组传递给 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 并返回一个数组?
如何将 NSArray 传递给 JavaScript 文件并在 JavaScript 中打印该数组?
如何将第二个viewcontroller文本字段值传递给第一个viewcontroller数组并在swift4中点击按钮时关闭