【问题标题】:Cannot invoke initializer for type 'SCNMatrix4'无法为“SCNMatrix4”类型调用初始化程序
【发布时间】:2017-07-11 06:07:02
【问题描述】:

我正在处理ARKit 并尝试初始化SCNMatrix,但它抛出以下错误:

代码sn-p:

if let frame = self.sceneView.session.currentFrame {
    let mat = SCNMatrix4(frame.camera.transform) 

    return (dir, pos)
}

错误:

无法使用参数列表调用类型“SCNMatrix4”的初始化程序 “(matrix_float4x4)”类型的“SCNMatrix4”重载存在 这些部分匹配的参数列表:(float4x4), (double4x4)

有人遇到过类似的问题吗?

【问题讨论】:

  • 您使用的是哪个 Xcode/Swift 版本?
  • 我使用的是 9.0 beta1 版本
  • 它在我的 Xcode 9 beta 2 中编译没有问题。

标签: ios swift arkit


【解决方案1】:

您使用的是旧版 Xcode 测试版。在 Xcode 9.0 beta 2 中更改了 SIMD 矩阵类型的 Swift 桥接。(在撰写本文时,beta 3 是最新的。)

通过上述更改,matrix_float_4x4float4x4 是同一类型,因此您的代码应该可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2023-03-18
    相关资源
    最近更新 更多