2017-05-26 137 views
-1

我一直在与数组挣扎;我试图将一些数组保存到用户默认值中。我的数组是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阵列?谢谢您的回答。

+1

[编辑]与导致你的问题实际的代码你的问题。 – rmaddy

+2

请阅读UserDefaults文档。它告诉你可以存储什么。 – rmaddy

回答

-1

你是看这一个: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

@愚蠢,多亏了改进的答案。 –