注意 : block 用 copy 引用
typedef int (^myblock)(int, int);
void play()
nslog(@"play ***");
int main(int argc, const char * ar**)
@autoreleasepool
——————————————————————————————
記憶體洩漏問題:
block 裡面引用 self ,而self又強指標指著block。使self 不能被銷毀。
解決方法:
__weak typeof(self) selfvc = self;
定義乙個self的替身並用ruo指標引用著
————————————————————————————————
注意:在定義block時,會在block中建⽴立
當前區域性變數內容的副本(拷貝)後續再對該變數的數值進⾏行修改, 重點
不會影響block中的數值
如果需要在block中保持區域性變數的
● 如果要修改block之外的區域性變數,需要使⽤用__block關鍵字
__block bool flag = no;
iOS的block記憶體管理
初始情況下 block本身 block修飾的變數以及在block內部使用的變數都是在棧裡的。block修飾的變數的位址會作為實參傳入block塊內部 暫時先這麼理解,實際比較複雜 block使用的外部變數被const拷貝到了block內部。也就是block使用的外部變數和這個外部變數本身沒有關係。c...
MRC環境下block記憶體洩漏問題
在以前,mrc環境下,使用block很可能會出現記憶體洩漏問題,並且在以往的面試中,一些接觸比較久的程式設計師都會喜歡問到這個問題,block記憶體洩漏的問題!下面,我來介紹一下,mrc下block記憶體洩漏的乙個問題 先隨意建立乙個dog類,並建立int型別age屬性,然後在main函式中,建立下...
iOS關於block的記憶體管理
person person person alloc init int a 20 person.age nsstring stringwithformat d a void myblock2 無引數無返回值的 a 呼叫block myblock 我們在block內部呼叫乙個區域性變數,當我們在呼叫b...