只是尝试按照与每个 viewController 中的按钮一起使用的相同代码复制此代码,并成功命中断点,并将 var num 从 0 (viewDidLoad) 更改为 1,然后在 deInit 中更改回 0:
你在尝试什么?当你点击解雇时,它不是在调用 deinit 方法吗?
// 主视图控制器
@IBAction func letsGo(_ sender: UIButton) {
if let vc = storyboard?.instantiateViewController(withIdentifier: "second") as? SecondViewController {
self.present(vc, animated: true, completion: nil)
}
}
// 第二个视图控制器
class SecondViewController: UIViewController {
var num = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
num += 1
print("\(num)")
}
@IBAction func dismissTheHype(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
deinit {
print("deiniting")
num -= 1
doNothing()
print("printing number \(num)")
}
func doNothing(){
var number = 4
number += 1
print("\(number) times")
}
}