一.若是隻使用全局或靜態變量或不使用外部變量, 那麼Block塊的代碼會存儲在全局區;
二.若是使用了外部變量, 在ARC中, Block塊的代碼會存儲在堆區;
在MRC中, Block快的代碼會存儲在棧區;
三.block默認狀況下不能修改外部變量, 只能讀取外部變量:
在ARC中, 外部變量存在堆中, 這個變量在Block塊內與在Block塊外地址相同;
外部變量存在棧中, 這個變量會被copy到爲Block代碼塊所分配的堆中;
在MRC中, 外部變量存在堆中, 這個變量在Block塊內與Block塊外相同;
外部變量存在棧中, 這個變量會被copy到爲Block代碼塊所分配的棧中;
四.若是須要修改外部變量, 須要在外部變量前面聲明 __block
在ARC中, 外部變量存在堆中, 這個變量在Block塊內與Block塊外地址相同;
外部變量存在棧中, 這個變量會被轉移到堆區, 不是複製, 是轉移.
在MRC中, 外部變量存在堆中, 這個變量在Block塊內與Block塊外地址相同;
外部變量存在棧中, 這個變量在Block塊內與Block塊外地址相同;變量