我无法理解闭包是如何创建的。
例如在ViewController A:
中dispatch_async(dispatch_get_main_queue()) [weak weakSelf = self] {
weakSelf?.property = "something"
}
我猜这个代码是如何工作的
1)ViewController A只是创建一个闭包(假设闭包存储在堆地址:0)并附加对闭包的强引用
2)主队列中的对象还有另一个对闭包的强引用,因为内存指针正在由ViewController A中的函数传递
3)当ViewController A在gcd调用闭包之前是dealloc时,闭包对象仍然在堆中,因为gcd有一个强引用,但我不明白,当ViewController为零时,怎么会gcd在ViewController A中调用闭包?
我误解了什么吗?