将数组保存并快速读入UserDefaults

时间:2017-05-26 03:18:07

标签: ios arrays iphone swift nsuserdefaults

我一直在努力使用数组;我试图将一些数组保存到用户默认值。我的数组是String,Double和UIImageView类型。我宣布他们是这样的:

var nameHospital = [String]()
var distanceBetweenLocations = [Double]()
var images = [UIImage]() // <-- Haven't tried with this yet

我尝试将它们保存在像这样的UserDefault中......

UserDefaults.standard.set(nameHospital, forKey: "name")

并像这样调用主题

UserDefaults.standard.object(forKey: "name")

然后,当我想要打印它们以查看它是否有效时,它只打印一个值(For Cycle的最后一个值)然后我在for中设置我的打印并且正如我所料,它打印了值然后被替换它用于下一个值,依此类推。

我做错了什么?如何分别调用每个值以获得更多功能?我怎么能用我的UIImage阵列做到这一点?谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

你会看到这一个:NSUserDefault

保存:

 let kUserDefault = NSUserDefaults.standardUserDefaults()
 kUserDefault.setObject(["KIRIT" , "MODI" , "FIRST" , "LAST"], forKey: "nameArray")
 kUserDefault.synchronize()

阅读:

kUserDefault.arrayForKey("nameArray")!
kUserDefault.objectForKey("nameArray")!
kUserDefault.valueForKey("nameArray")

适用于Swift 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