我声明一个数组:
var array:[String] = []赋值:
array.append(uniqueId as String)然后将其传递给一个函数:
static var levels_array : [String] = []
class func setLevelsArray(arr:[String])
{
GamePrefrences.levels_array = arr
println(GamePrefrences.levels_array)
}我的问题是,当我打印数组时,我得到:
任择(88868658),任择(112051080),任择(95274974)
为什么这是可选的?我只想要数组中的字符串,那么为什么添加“可选”呢?
我来自Java,有人能解释创建可选选项的原因以及如何删除它吗?
发布于 2015-06-15 13:38:38
很可能实际的字符串是“可选的(88868658)”,等等。您可能是意外地从一个可选字符串中创建了这个字符串。在上面的代码中,您肯定有一个字符串数组,而不是选项数组,当您打印一个字符串数组时,它们不包括双引号(这可能会让人困惑)。
这可能发生在这里:
array.append(uniqueId as String)uniqueId是什么类型?as不用于转换类型。它只是用来在可能的情况下转换它们(虽然如果是这样的话,这应该会失败;所以我怀疑你在某个地方做字符串插值)。
发布于 2015-06-15 13:47:44
String本身不是可选的-- uniqueId是可选的。基本上,选项表示存储的值可能存在也可能不存在。
在将可选uniqueID转换为String之前,我建议使用一个String语句来打开可选的String,这样程序实际上在将其存储为String之前就知道了该选项的存在,例如:
if let uniqueId = uniqueId {
array.append(uniqueId as String)
}https://stackoverflow.com/questions/30846560
复制相似问题