我有一个使用 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 类型的值。