swift - 二元运算符 '<' 不能应用于类型 'Double' 和 'CGFloat' 的操作数

标签 swift swift2

这段代码没有语法错误。

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/

相关文章:

ios - Swift 2 无法将类型 '[AnyObject]' 的值转换为预期的参数类型 '[UIViewController]?'

objective-c - "Type of expression is ambiguous without more context"

swift - 使用 Parse 的 IOS 8 应用程序在更新后无法运行

ios - 从一个 ViewController 到另一个 ViewController 保存和删除 NSUserDefaults - Swift 2

ios - 在 Swift 3 中添加观察者和选择器

swift - 为 Alamofire 和 Argo 创建响应式扩展

swift - 将[UInt8]转换为白色透明图像

swift - 如何通过 swift 将图像从 URL 分配给 NSData?

arrays - 如何在 Swift 中从数组创建给定大小的唯一数组?

swift - 逐渐将 UIImage 的颜色从 RGB 更改为灰度