使用SCNView.prepare()会在使用SKScene时导致崩溃

时间:2018-08-27 17:59:57

标签: ios swift sprite-kit scenekit exc-bad-access

我有一个SceneKit视图,该视图使用具有不同类型diffuse contents的节点。类型之一是SKScene。在添加这样的节点之前,我正在其他prepare上运行OperationQueue函数,以使节点在添加之前无需关闭即可进行准备。它可以在所有其他节点上正常工作,但是当我使用SKScene作为分散内容时,EXC_BAD_ACCESS函数上的prepare就会崩溃。

private class AddNodeOperation: Operation {
    private let node:   SCNNode
    private let parent: SCNNode
    private let arView: AugmentedRealityViewWithSceneView

    init(node: SCNNode, parent: SCNNode, arView: AugmentedRealityViewWithSceneView) {
        self.node   = node
        self.parent = parent
        self.arView = arView
    }

    override func main() {
        arView.sceneView.prepare(node) { isCancelled }
        guard isCancelled == false else { return }
        parent.addChildNode(node)
    }
}

操作堆栈上的最后一件事是

  

SceneKit`C3DSceneGetAnimationManager:

     

-> 0x19f013694 <+0>:ldr x0,[x0,#0x48]

     

0x19f013698 <+4>:退出

如果我跳过运行arView.sceneView.prepare(node) { isCancelled },那就没有问题。

这可以通过某种方式解决吗?

0 个答案:

没有答案