内存泄漏当自定义UIViewController的子类
问题描述:
我一直在使用仪器分析时遭受内存泄漏。内存泄漏当自定义UIViewController的子类
所以情况是我有一个从UIViewController继承的父AVC和一个名为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()
}
}
所以问题是,为什么“a”泄漏时,它是一个BVC的实例,而不是AVC?此外,这两种情况下都会捕获内存图。
感谢
答
你应该申报为
var a: A?
从来没有使用强制解除绑定自选的。
这根本不是问题,也没有回答这个问题。此外,在我的实际应用程序中,“a”不应该是零,我不能直接在它声明的同一行中初始化它,所以优雅的解决方案是强制解包,这是解压的实际用法之一。 –