如果你创建一个新的单一视图应用程序,添加一个UIButton,并给它这个IBAction:
import UIKit
import SceneKit
class ViewController: UIViewController {
@IBAction func trigger(_ sender: UIButton) {
DispatchQueue.global(qos: .userInteractive).async {
for _ in 0..<100000 {
SCNSphere(radius: 100)
}
}
}
}
即使您甚至没有创建对这些实例的引用,这些SCNSphere
实例也会永久泄漏。如果你在主线程上执行此操作就没问题,但是在主线程以外的任何线程上创建的任何SCNNode
或SCNGeometry
实例都将永远不会被释放。我在这里遗漏了什么,这是预期的行为,还是这个错误?