CGFloat 不能用 Float 初始化

CGFloat cannot be initialized with Float

我有一个使用 Swift 为 Sprite Kit 应用程序编写的函数。 Xcode 当前构建错误,声称无法初始化 CGFloat()。这是我的代码:

func someFunction () {
    var x:Float = 5.0
    return CGFloat(x)
}

抛出错误:

"Could not find an overload for 'init' that accepts the supplied arguments"

在 CGFloat 上单击命令后,我可以看到带有 Floats、Doubles 和 Ints 的 inits 以获取可能的参数。

以下代码也会产生相同的错误

func someFunction () {
    return CGFloat(5.0)
}

以及

func someFunction () {
    return 5;
}

哪个报错了

"Type '()' does not conform to protocol 'IntegerLiteralConvertible'"

我觉得我显然遗漏了一些影响我的代码行为方式的语言核心概念。

您显然缺少的概念是您没有为函数声明 return 类型。

应该是

func someFunction () -> CGFloat {
    var x:Float = 5.0
    return CGFloat(x)
}

这声明 someFunction 正在 returning CGFloat 类型的值。