1
我一直在使用儀器分析時遭受內存泄漏。內存泄漏當自定義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?此外,這兩種情況下都會捕獲內存圖。
感謝
這根本不是問題,也沒有回答這個問題。此外,在我的實際應用程序中,「a」不應該是零,我不能直接在它聲明的同一行中初始化它,所以優雅的解決方案是強制解包,這是解壓的實際用法之一。 –