循環引用
兩個類,都互相引用了對方時,可能導致循環引用,用弱指針可破循環。
block
Paste_Image.png
按照調用函數的方式調用塊對象變量就可以了:int result = myBlock(4); // result是 28
block可以使用和改變全局變量;只能使用局部變量,若加_block可以改變。
代碼塊(block)的遞歸調用:
必須是全局變量或靜態變量。
1static void (^ const blocks)(int) = ^(int i)
2 {
3 if (i > 0) {
4 NSLog(@"num:%d", i);
5 blocks(i - 1);
6 }
7 };
8 blocks(3);
運行打印結果:
num:3
num:2
num:1