Swift 无法转换类型为';[字符串]?';到预期的参数类型';字符串';
我要做的是将Swift 无法转换类型为';[字符串]?';到预期的参数类型';字符串';,swift,Swift,我要做的是将firstCard的图像设置为与名为firstCardString的图像文件相等 例如,在下面的例子中,代码可以设置self.firstCard.image以显示名为“card1”的图像,如果它随机选取它(为了简洁起见,我剪裁了数组的其余部分,完整的东西包含52个对象) 相反,我得到了以下错误: 无法将“[String]”类型的值转换为预期的参数类型“String” 我不完全确定这个错误消息的意思,什么是[String]? []是一个数组,?是可选的。您的firstCardStrin
firstCard
的图像设置为与名为firstCardString
的图像文件相等
例如,在下面的例子中,代码可以设置self.firstCard.image
以显示名为“card1”的图像,如果它随机选取它(为了简洁起见,我剪裁了数组的其余部分,完整的东西包含52个对象)
相反,我得到了以下错误:
无法将“[String]”类型的值转换为预期的参数类型“String”
我不完全确定这个错误消息的意思,什么是
[String]?
[]
是一个数组,?
是可选的。您的firstCardString
根本不是一个字符串,而是一个可选的字符串数组。您已经阅读了该卡的deckArray
字典值,您知道,因此您的firstCardString
实际上看起来是这样的:可选([“熊”,“球])
。我想你的意思是:
self.firstCard.image = UIImage(named: "card\(firstRandomNumber)")
这将基于字符串设置图像,如“card1”
或“card4”
。我想你以后会用你的字典做别的事。执行此操作时,请确保打开它返回的可选值:
if let cardArray = deckArray["card\(firstRandomNumber)"] {
//do something with bears and balls
}
可选地,考虑制作<代码> DekStale一个数组(这将使名称更合理),而不是字典。这样,您就不必处理可选项,并且可以访问以下项目:
let cardArray = deckArray[firstRandomNumber]
//do something with bears and balls
看起来deckArray实际上是字符串数组的字典。因此,如果
firstRandomNumber=1
,deckArray[“card\(firstRandomNumber)”
将返回[“Bear”,“Ball”]
。那绝对不是一根绳子 您的deckArray是一个字典,您的firstCardString是一个数组
String = String
[String] = Array of strings.
但是,如果我使用
self.firstCard.image=UIImage(名为:“card\(firstRandomNumber)”)
,是否会尝试将firstCard设置为一个介于1和52之间的随机数,而不是将其设置为与该数字的索引相对应的键(“card4”)?图像名称将是“card1”或“card3”或“card5”。看到名字里的“卡”字了吗?然后是\(firstRandomNumber)
,它将在单词“card”后插入数字。@andyvn22请在此处回答相同的相关问题。请在此处回答类似的相关问题。请在此处回答类似的相关问题
String = String
[String] = Array of strings.