【发布时间】:2021-04-23 21:22:14
【问题描述】:
出现问题时,我正在创建简单的测验应用程序。
我有一个到 UILabel 的 IBOutlet 连接:
@IBOutlet weak var questionText: UILabel!
还有问题和正确答案:
let questions = [["1 + 1 = 2", true],
["2 + 2 * 2 = 8", false],
["It's third question", true]]
"Cannot assign value of type 'Any' to type 'String'" 错误,当更改问题时:
func nextQuestion(num: Int){
questionNum += 1
questionText.text = questions[num][0] // <- error is here
}
当我尝试强制字符串时,"no exact matches in call to initializer" 出现了,即使我说这是一个字符串并且没有理由计算它:
questionText.text = String(questions[num][0])
唯一有效的代码是:
questionText.text = questions[num][0] as? String
我打扰为什么?我不明白为什么 String() 是错误的并且 as! 会产生警告 “将强制向下转换为 'String' 作为可选将永远不会产生 'nil' ":
questionText.text = questions[num][0] as! String
【问题讨论】:
标签: swift