ios - SCNVector3 组件的类型是什么? CGFloat 还是 float ?

标签 ios swift scenekit

苹果文档给出了 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)
}

我收到“无法使用类型参数列表调用''”错误。 left.x、left.y 和 left.z 不应该是 CGfloat 吗?

如何以及何时决定 CGFloat 是 double 型还是浮点型?

最佳答案

在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)
}

关于ios - SCNVector3 组件的类型是什么? CGFloat 还是 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27877080/

相关文章:

ios - 如何在 iOS 中显示多选图像

ios - UIScrollView - UILabel 如何将内容推到屏幕外

swift - XCTAssertNoThrow 在闭包中调用时不编译

ios - 旋转我的 SceneKit Material

swift - 来自 SCNNode 对象的 segue (Swift)

ios - 在 ios9.3 中未获取 devicetoken 或未调用 didfailRemotenotification

ios - 访问 NSDictionary 数组对象中的第二层数组

ios - prepareForSegue 清空我的 NSManagedObject 数组

swift - 在渲染器 : update at time 中同步执行 2 个任务

ios - xcode 中的代码签名错误,找不到身份