__block的内存管理

2020-04-17  本文已影响0人  大鹅ne

🌟block在栈上时,并不会对__block变量产生强引用
🌟当block copy到堆时
会调用block内部的copy函数
copy函数内部会调用_Block_object_assignd函数
_Block_object_assignd函数会对__block内部变量产生强引用(retrain)


Screen Shot 2020-04-17 at 4.25.27 PM.png

🌟当block从堆中移除时
会调用block内部的dispose函数
dispose函数内部会调用_Block_object_dispose函数
_Block_object_dispose函数会自动释放__block变量(release)


Screen Shot 2020-04-17 at 4.34.39 PM.png
上一篇 下一篇

猜你喜欢

热点阅读