我想将数组从json保存到用户默认设置,我将在打印时得到该数组。当我在不同的视图控制器中检索它时,我只会得到最后一个数组。 那么如何在不同的视图控制器中检索所有用户默认的数据。
这是我将代码保存在用户默认设置中的方式
第一视图控制器
public new void Add(T Subordinate)
{
T Manager = Subordinate.ParentInstance;
// then it will be possible to see the current value of
// the property "LastName" for Anakin with "Manager.LastName"
}
输出:
let kode_pelaksanaan = item["kode_pelaksanaan"].string
UserDefaults.standard.set(kode_pelaksanaan, forKey: "kode_pelaksanaan")
在第二个视图控制器中检索
kode_pelaksanaan : ELR2018120005
kode_pelaksanaan : ELR2018120004
kode_pelaksanaan : ELR2018120003
kode_pelaksanaan : ELR2018120001
kode_pelaksanaan : ELR2018050004
输出检索
let data = UserDefaults.standard.object(forKey: "kode_pelaksanaan")
let parameter = [
"request" : "{\"requestMethod\":\"detail_selflearning\",\"user\":\"\(user)\",\"kode_pelaksanaan\":\"\(data ?? "0")\"}"
]
我要输出第二个视图控制器
kode_pelaksanaan : ELR2018050004
答案 0 :(得分:0)
您的代码段未提供足够的信息。
以下是如何从UserDefaults中存储和检索数组的示例
var myArray = [0,1,2]
override func viewDidLoad()
{
super.viewDidLoad()
UserDefaults.standard.set(myArray, forKey: "yourArray")
let data = UserDefaults.standard.object(forKey: "yourArray")!
print(data)
}
答案 1 :(得分:-1)
像这样使用:
// To save array in UserDefault
let names = ["John", "Alex", "Matien", "Flex"]
UserDefaults.standard.set(names, forKey: "names")
// To get names array from UserDefault safely.
if let allNames = UserDefaults.standard.object(forKey: "names") as? [String] {
print(allNames)
}
答案 2 :(得分:-1)
UserDefaults + Wrapper
final class UDWrapper {
class func setArray(key: String, value: NSArray) {
setObject(key: key, value: value)
}
class func getArray(key: String) -> [Any]? {
return UserDefaults.standard.array(forKey: key)
}
class func setObject(key: String, value: Any?) {
if value == nil {
UserDefaults.standard.removeObject(forKey: key)
} else {
UserDefaults.standard.set(value, forKey: key)
}
}
}
用法
let array: NSArray = ["Hello, World!", 42]
UDWrapper.setArray(key: "myarray", value: array)
print(UDWrapper.getArray(key: "myarray") ?? "")