保存并读取数组到UserDefaults swift
问题描述:
我一直在与数组挣扎;我试图将一些数组保存到用户默认值中。我的数组是String,Double和UIImageView类型。我宣布他们像:保存并读取数组到UserDefaults swift
var nameHospital = [String]()
var distanceBetweenLocations = [Double]()
var images = [UIImage]() // <-- Haven't tried with this yet
,我尝试将它们保存在这样UserDefaults ...
UserDefaults.standard.set(nameHospital, forKey: "name")
并调用主题,像这样
UserDefaults.standard.object(forKey: "name")
然后,当我要打印他们看它是否工作,它只打印一个值(For循环的最后一个值),然后我在for中设置我的打印内容,正如我所期待的那样,它打印了该值,然后将其替换为下一个值,等等。
我在做什么错?如何为每个值分别调用其他功能?我怎样才能做到这一点,但我的UIImage阵列?谢谢您的回答。
答
你是看这一个:NSUserDefault
SAVE:
let kUserDefault = NSUserDefaults.standardUserDefaults()
kUserDefault.setObject(["KIRIT" , "MODI" , "FIRST" , "LAST"], forKey: "nameArray")
kUserDefault.synchronize()
READ:
kUserDefault.arrayForKey("nameArray")!
kUserDefault.objectForKey("nameArray")!
kUserDefault.valueForKey("nameArray")
对于斯威夫特3
let kUserDefault = UserDefaults.standard
kUserDefault.set(["KIRIT" , "MODI" , "FIRST" , "LAST"], forKey: "nameArray")
kUserDefault.synchronize()
let data = kUserDefault.array(forKey: "nameArray")! as? [String] ?? [String]()
print(data)
更多信息请访问store value in userDefaults
+0
@愚蠢,多亏了改进的答案。 –
[编辑]与导致你的问题实际的代码你的问题。 – rmaddy
请阅读UserDefaults文档。它告诉你可以存储什么。 – rmaddy