我已经能够提炼我在我编写的应用程序中看到的问题,并在一个简单的例子中复制了它。
鉴于这些课程:
class Thing {
var name:String = ""
var price:Double = 0.0
var changed:Double = 0.0
var percentChanged:Double = 0.0
}
class TestUIViewController: UIViewController {
}
class ViewController: TestUIViewController {
var thing:Thing?
@IBAction func clicked(_ sender: AnyObject) {
self.thing = Thing()
}
}
我创建了一个带有按钮的UIView,按下时,会实例化一个事物。使用仪器分析器,我可以看到发生内存泄漏。
但是,如果ViewController类从UIViewController扩展,则没有问题。
这一切都是从一个快速测试应用程序中复制而来的,因此我无法想到其他外部力量。
以下是示例代码 - https://www.dropbox.com/s/ooqh77lhpzbvpv1/ArcTest.zip?dl=0