我对迅速和展开的概念非常陌生。我试图将一个字符串数组存储到NSUserDefaults中。将结果打印到控制台后,阵列显示为
BaseViewController
目标是实现:
[Optional("VarOne"), Optional("VarTwo")] //the two test variables stored in the array
我做了很多测试来获得类似的解决方案。我的代码如下:
["VarOne", "VarTwo"]
我的主要问题是如何在这种情况下解包变量。为了澄清,这些是String变量。
编辑:我将代码添加到NSUserDefaults
中 let defaults = NSUserDefaults.standardUserDefaults()
if let array = defaults.arrayForKey("listOfPlayers"){
for i in array{
print(i)
}
}
答案 0 :(得分:1)
试试这个:
really
答案 1 :(得分:0)
你可以用!要么 ?运算符。
let defaults = NSUserDefaults.standardUserDefaults()
if let array = defaults.arrayForKey("listOfPlayers"){
for i in array {
if let value = i as? String {
print(value)
}
}
}
答案 2 :(得分:0)
尝试以下方法:
if NSUserDefaults.standardUserDefaults().objectForKey("listOfPlayers") != nil
{
let array = NSUserDefaults.standardUserDefaults().objectForKey("listOfPlayers") as! [String]
for i in array
{
print(i)
}
}
你可以一次性打开整个数组,但你不能在条件中检查NSUserDefaults中是否存在该数组。
答案 3 :(得分:0)
首先,arrayForKey将返回AnyObject类型的可选数组,即[AnyObject]?在您的场景中,此数组包含可选字符串。
if let optionalStringArray = NSUserDefaults.standardUserDefaults().arrayForKey("listOfPlayers") {
// Now you'll be having an array of AnyObject, in your case you have array of optional string
for optionalString in optionalStringArray {
if let str = optionalString as? String {
print(str) // You got your string value here
}
}
HTH:)