【发布时间】:2016-06-09 11:37:32
【问题描述】:
我对 swift 和展开概念非常陌生。我正在尝试将字符串数组存储到 NSUserDefaults 中。将结果打印到控制台后,数组显示为
[Optional("VarOne"), Optional("VarTwo")] //the two test variables stored in the array
目标是实现:
["VarOne", "VarTwo"]
我做了很多测试来获得类似的解决方案。我的代码如下:
let defaults = NSUserDefaults.standardUserDefaults()
if let array = defaults.arrayForKey("listOfPlayers"){
for i in array{
print(i)
}
}
我的主要问题是如何在这种情况下解开变量。澄清一下,这些是字符串变量。
编辑:我在将数组添加到 NSUserDefaults 的位置包含了我的代码
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setObject(listOfPlayers, forKey: "listOfPlayers")
userDefaults.synchronize()
【问题讨论】:
-
您所拥有的没有任何问题,您打印的描述只是为您提供了比您预期更多的信息
-
所以,问题是当我尝试直观地显示它时,它也显示为可选。这显然是应用程序清晰度的一个主要问题。
-
您可能已经使用字符串插值将字符串保存在数组中,它添加了文字
Optional。考虑尽可能使用非可选字符串。 -
不要使用字符串的描述,或者除了记录目的之外的任何东西......问题实际上是你如何首先将字符串添加到数组中
-
对不起,我不明白,我如何使用字符串的描述?
标签: arrays swift nsuserdefaults