这段代码没有语法错误。
for (var m = 1.0; m < 3.0; m += 0.1) {
}
另一方面,下面的代码有一个语法错误。 错误消息:二元运算符“<”不能应用于“Double”和“CGFloat”类型的操作数
let image = UIImage(named: "myImage")
for (var n = 1.0; n < image!.size.height; n += 0.1) {
}
为什么会这样?我尝试使用 if let
而不是 force unwrap,但我遇到了同样的错误。
环境: Xcode7.0.1 swift 2
最佳答案
因为 image!.size.height
返回 CGFloat
任何类型的 n
都是 Double
所以你需要以这种方式将 CGFloat
转换为 Double
Double(image!.size.height)
。
你的代码将是:
let image = UIImage(named: "myImage")
for (var n = 1.0; n < Double(image!.size.height); n += 0.1) {
}
或者您可以通过这种方式将类型分配给 n
作为 CGFloat
:
for (var n : CGFloat = 1.0; n < image!.size.height; n += 0.1) {
}
关于swift - 二元运算符 '<' 不能应用于类型 'Double' 和 'CGFloat' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32920992/