__block變量存儲(chǔ)域
</br>
《Objective-C高級(jí)編程 iOS與OS X多線(xiàn)程和內(nèi)存管理》表2-5
在一個(gè)Block中使用__block變量丰泊,對(duì)Block進(jìn)行復(fù)制的過(guò)程:
將Block復(fù)制到堆
“使用”是Block在棧中的對(duì)__block變量的語(yǔ)義应又,“持有”是Block在堆中對(duì)__block變量的語(yǔ)義幌羞。“持有”是與對(duì)象的引用計(jì)數(shù)有關(guān)的語(yǔ)義。__block變量有isa指針翰撑,所以是個(gè)對(duì)象,“持有”語(yǔ)義對(duì)它同樣適用啊央。
在多個(gè)Block中使用__block變量眶诈,對(duì)Block進(jìn)行復(fù)制的過(guò)程:
將Block0復(fù)制到堆
將Block1復(fù)制到堆
一個(gè)Block持有__block變量,Block被廢棄時(shí)瓜饥,__block變量被廢棄的過(guò)程:
Block被廢棄
多個(gè)Block持有__block變量逝撬,Block被廢棄時(shí),__block變量被廢棄的過(guò)程:
Block0乓土,Block1依次被廢棄