CGFloat 不能用 Float 初始化



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

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

这抛出错误:

"找不到接受所提供参数的'init'重载"

命令单击 CGFloat 后,我可以看到带有浮点数、双精度数和整数的 inits 以获取可能的参数。

以下代码也会创建相同的错误

func someFunction () {
    return CGFloat(5.0)
}

以及

func someFunction () {
    return 5;
}

哪个给出了错误

"类型'()'不符合协议'整数文字可转换'"

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

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

它应该是

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

这声明了 someFunction 返回 CGFloat 类型的值。

最新更新