'@lvalue $ T7'与'CGPoint'不同!

时间:2014-11-04 00:48:41

标签: ios swift scenekit

我正在尝试在iOS上的SceneKit中移动节点集合,但我收到了一个神秘的错误。到目前为止,这是我的代码:

func renderer(aRenderer: SCNSceneRenderer, updateAtTime time: NSTimeInterval) {
    let cubes = scene.rootNode.childNodesPassingTest { (node, stop) -> Bool in node.name == "cube" }
    for cube in cubes {
        cube.position = SCNVector3(x: cube.position.x - 5.0, y: cube.position.y, z: cube.position.z)
    }
}

cube.position = ...行上,我得到'@lvalue $T7' is not identical to 'CGPoint!'

这个错误是什么意思?此外,如果有更好的方法循环这些节点,请告诉我!感谢。

1 个答案:

答案 0 :(得分:3)

childNodesPassingTest returns an [AnyObject]并且Swift无法确定cube的类型(显然它认为position属性是CGPoint! cubes })。明确地将[SCNNode]强制转换为for cube in cubes as [SCNNode] { cube.position = SCNVector3(x: cube.position.x - 5.0, y: cube.position.y, z: cube.position.z) } 应该修复它:

{{1}}