【问题标题】:Save and read arrays into UserDefaults swift [duplicate]将数组保存并读取到 UserDefaults swift [重复]
【发布时间】:2017-05-26 03:18:06
【问题描述】:

我一直在与数组作斗争;我正在尝试将一些数组保存到用户默认值中。我的数组是 String、Double 和 UIImageView 类型。我将它们声明为:

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 数组,我怎么能做到这一点?谢谢你的回答。

【问题讨论】:

  • Edit 你的问题是导致你问题的实际代码。
  • 请阅读UserDefaults 的文档。它会告诉您可以存储什么。

标签: ios arrays iphone swift nsuserdefaults


【解决方案1】:

你看到了这个: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

【讨论】:

  • @Foolish,感谢改进了答案。
猜你喜欢
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
相关资源
最近更新 更多