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
}