Nested closures: will deinit run?
Task
class TestClass {
var block1: (() -> Void)?
var block2: (() -> Void)?
func test() {
block1 = { [weak self] in
self?.block2 = {
print(self)
}
self?.block2?()
}
block1?()
}
deinit { print("deinit") }
}
var object: TestClass? = TestClass()
object?.test()
object = nil
The rest of this answer, with code and interview follow-ups, is in the DevPrep app.
Read the full answer in DevPrep