在单独的线程中创建SceneKit对象时,iOS Swift内存泄漏

时间:2017-09-20 22:07:46

标签: ios swift multithreading scenekit

如果你创建一个新的单一视图应用程序,添加一个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实例也会永久泄漏。如果你在主线程上执行此操作就没问题,但是在主线程以外的任何线程上创建的任何SCNNodeSCNGeometry实例都将永远不会被释放。我在这里遗漏了什么,这是预期的行为,还是这个错误?

0 个答案:

没有答案