Objective-C的Block实质与实现探究 part-8

__block变量存储域

</br>

《Objective-C高级编程 iOS与OS X多线程和内存管理》表2-5

在一个Block中使用__block变量,对Block进行复制的过程:

将Block复制到堆

“使用”是Block在栈中的对__block变量的语义,“持有”是Block在堆中对__block变量的语义。“持有”是与对象的引用计数有关的语义。__block变量有isa指针,所以是个对象,“持有”语义对它同样适用。

在多个Block中使用__block变量,对Block进行复制的过程:


将Block0复制到堆
将Block1复制到堆

一个Block持有__block变量,Block被废弃时,__block变量被废弃的过程:


Block被废弃

多个Block持有__block变量,Block被废弃时,__block变量被废弃的过程:

Block0,Block1依次被废弃
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容