У меня есть 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>: ret
Если я пропущу выполнение arView.sceneView.prepare(node) { isCancelled }
, то проблем не будет.
Можно ли это как-то решить?