添加 subview 时, View Controller 似乎泄漏了。
为什么下面打印'What'
import UIKit
final class ViewController: UIViewController {
private lazy var mySwitch: UISwitch = {
let mySwitch = UISwitch()
mySwitch.tintColor = .blue
return mySwitch
}()
func setup() {
view.addSubview(mySwitch)
}
@objc func switchChangedState() {
}
deinit {
print("what")
}
}
var controller: ViewController? = ViewController()
controller = nil
但是下面没有
var controller: ViewController? = ViewController()
controller?.setup()
controller = nil
编辑:添加GIF
Xcode 版本 9.4.1 (9F2000)
最佳答案
你的代码很好。 controller?.setup()
不会导致泄漏。请确认测试用例2中的代码是否真的被调用。 (不打电话不打印“什么”)
关于ios - 添加 subview 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52175699/