我最近在用仪器进行分析时遇到了内存泄漏。
所以情况是我有一个父AVC,它继承自UIViewController和一个名为BVC的AVC子类。这个BVC有一个辅助类的实例,它在viewDidLoad上初始化。好吧,乐器声称viewDidLoad上存在内存泄漏。
以下是我用来重现问题的示例代码。奇怪的是,如果“a”是AVC的成员并在BVC“A”中初始化,它就不会泄漏。
import UIKit
class A
{
}
class AVC: UIViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
}
}
class BVC: AVC
{
var a: A!
override func viewDidLoad()
{
super.viewDidLoad()
a = A()
}
}
所以问题是,当它是BVC而不是AVC的实例时,为什么“a”泄漏?此外,这两种情况下都是内存图的捕获。
由于
答案 0 :(得分:0)
您应该声明为
var a: A?
从未使用强制取消绑定选项。