在销毁 ARSCNView 后尝试再次实例化 ARSCNView 时,我的 iPhone 应用程序出现问题。
在我的 ViewController 中,我以编程方式创建一个 ARSCNView 用于动作捕捉交互:
func addARSceneView() {
arSceneView = ARSCNView(frame: self.view.frame)
arSceneView.loops = true
arSceneView.session.delegate = self
self.view.addSubview(arSceneView)
arSceneView.session.run(ARBodyTrackingConfiguration())
}
当用户离开应用程序的这一部分时,我将其删除如下:
func removeARSceneView() {
arSceneView.session.pause()
arSceneView.pause(self)
arSceneView.session.delegate = nil
arSceneView.removeFromSuperview()
arSceneView = nil
}
后来,当我尝试使用上面的第一个函数第二次实例化 ARSCNView 时,它在构造函数中崩溃并出现 EXC_BAD_ACCESS:
我还尝试使用包含 ARSCNView 的 xib 中的视图,但同样的问题发生在该视图的 init(coder) 函数中。
我没有发现这个问题,我猜通常开发人员只创建一次 ARSCNView。