weak var person = Person(): what gets printed?
Task
class Person {
var name = "Bill"
func sayHello() {
doAction { [weak self] in
print("Hello my name is \(self?.name)")
}
}
private func doAction(_ closure: @escaping () -> Void) {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { closure() }
}
deinit { print("Person deiniting") }
}
weak var person: Person? = Person()
person?.sayHello()
person = nil
The rest of this answer, with code and interview follow-ups, is in the DevPrep app.
Read the full answer in DevPrep