Apple文档给出了SCNVector3的声明:
typedef struct SCNVector3 {CGFloat x,y,z; } SCNVector3;
或者在尝试编写重载函数时:
func * (left: SCNVector3, right: CGFloat) -> SCNVector3 {
return SCNVector3Make(left.x * right, left.y * right, left.z * right)
}
我得到"无法调用' '使用类型&#34的参数列表;错误。 Aren离开了.x,left.y和left.z应该是CGfloat吗?
如何以及何时决定CGFloat是双倍还是浮动?
答案 0 :(得分:2)
在iOS 8.1 SDK标头中,SCNVectorX
类型基于Float
,可以看出
通过命令点击SCNVector3
:
struct SCNVector3 {
var x: Float
var y: Float
var z: Float
}
func SCNVector3Make(x: Float, y: Float, z: Float) -> SCNVector3
这与使用CGFloat
的OS X 10.10 SDK不同。所以文档
似乎是错的。以下在iOS项目中编译:
func * (left: SCNVector3, right: Float) -> SCNVector3 {
return SCNVector3Make(left.x * right, left.y * right, left.z * right)
}