【问题标题】:Swift: Cannot convert value of type 'Double' to expected argument type 'CGFloat' But it can?Swift:无法将“Double”类型的值转换为预期的参数类型“CGFloat”但可以吗?
【发布时间】:2026-02-14 03:40:01
【问题描述】:

我在使用 xCode 时遇到问题,它不允许我将 CGFloat 值转换为 Double。我已经完成了转换(在变量名旁边使用 Double(variableName) 和 :Double),它仍然会抛出这个错误:

无法将“Double”类型的值转换为预期的参数类型“CGFloat”

代码如下:

var InitialGroundWidth:Double = Double(self.InitialGround.size.width)
var frameWidth:Double = Double(self.frame.size.width)
groundSpeed = 5 + (5 * InitialGroundWidth/2)/(frameWidth/2)

【问题讨论】:

  • groundSpeed 的类型是什么?我敢打赌这是CGFloat,而不是Double
  • self.InitialGround.size.width 是 CGFloat 但我将其转换为 Double。 InitialGroundWidth 应该是 Double。
  • InitialGroundWidthDouble。但是groundSpeed的类型是什么?
  • 谢谢你,groundSpeed 是 CGFloat 但我忘了改,现在我注意到了。如何关闭问题或将其设为只读?
  • 题体下面应该有一个删除按钮

标签: swift xcode


【解决方案1】:

我只是犯了一个愚蠢的错误。我忘了将 groundSpeed 转换为 Double。我忘记了;它是 CGFloat。

【讨论】:

    最近更新 更多