我有一个ARSCNView,ViewController.swift我想将它保存ARFrames到一个预先分配的数组中
func session(_ session: ARSession, didUpdate frame: ARFrame)
Run Code Online (Sandbox Code Playgroud)
但是,在处理大约 11-13 后ARFrames,整个ARSCNView将通过使用冻结
self.ARFrames.append(frame)
Run Code Online (Sandbox Code Playgroud)
奇怪的是,func session(_ session: ARSession, didFailWithError error: Error)在此过程中没有调用,也没有报告任何其他错误,应用程序没有崩溃,所有其他用户控件都可以正常工作,只有ARSCNView冻结和didpUdate 事件不会被调用。类似于ARSCNView 在添加具有强引用的 14 个 ARAnchor 子类对象时冻结,但那里的页面没有解决方案。同时也是应用后转到后台并返回,sessionWasInterrupted(:)和sessionInterruptionEnded(:)被称为,即使现场查看被冻结之前。这是iOS 11的错误吗?
这是我在我的应用程序中使用的完整代码。
import UIKit
class ViewController: UIViewController,ARSCNViewDelegate,ARSessionDelegate {
@IBOutlet var sceneView: ARSCNView!
let configuration = ARFaceTrackingConfiguration()
var ARFrames = [ARFrame]()
var imgCount = 0
override func viewDidLoad() {
super.viewDidLoad()
ARFrames.reserveCapacity(300)
sceneView.delegate = self
sceneView.session.delegate …Run Code Online (Sandbox Code Playgroud)