asyncAfter with self in a ViewController: when is the screen freed?
Task
The user opens the screen and closes it after 3 seconds. Is "text" printed? When does deinit run?
final class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
self.log("text")
}
}
private func log(_ message: String) { print(message) }
deinit { print("deinit") }
}
The rest of this answer, with code and interview follow-ups, is in the DevPrep app.
Read the full answer in DevPrep