__block变量存储域
</br>
《Objective-C高级编程 iOS与OS X多线程和内存管理》表2-5在一个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依次被废弃
网友评论