1)第一个代码有效,因为String它有一个 init 方法,它需要一个Int. 然后上线
let widthLabel = label + String(width)
您正在使用运算符连接字符串+以创建widthLabel.
2) Swift 错误消息可能会产生很大的误导性,实际问题是Int没有init采用String. 在这种情况下,您可以使用toInt方法 on String。这是一个例子:
if let h = height.toInt() {
let heightNumber = number + h
}
您应该使用 andif let语句来检查是否String可以转换为,Int因为如果失败toInt将返回;nil在这种情况下强制展开将使您的应用程序崩溃。height请参阅以下示例,了解如果不能转换为会发生什么Int:
let height = "not a number"
if let h = height.toInt() {
println(number + h)
} else {
println("Height wasn't a number")
}
// Prints: Height wasn't a number
斯威夫特 2.0 更新:
Int现在有一个初始化程序,它采用String,制作示例 2(见上文):
if let h = Int(height) {
let heightNumber = number + h
}