一、關於block
1、block的作用:儲存一段**。
2、蘋果官方推薦的一種語法,類似於c語言的函式,但是比函式更加靈活。
3、^是block語法的標識。
二、block的用法
1)無返回值無引數
1 - (void輸出結果:)myfirstblock2;
7//2.呼叫block
8myblock();
910 }
2016-02-18 09:56:50.124 01-block[750:25107] 無引數無返回值2)有引數沒有返回值
- (void)mysecondblock輸出結果:; //2.呼叫block
mysecondblock(2,3);
}
2016-02-18 10:03:22.221 01-block[811:30160] 有引數無返回值:53)有引數有返回值
1 - (void輸出結果:)mythirdblock2;
7//2.呼叫block
8double r3 = mythirdblock(1.1,2.2
);9 nslog(@"
有引數有返回值:%f
",r3);
10 }
2016-02-18三、block語法的格式10:06:42.615
01-block[861:32505] 有引數有返回值:3.300000
四、block的注意點
1)block內部可以訪問外部變數;
2)預設情況下,block內部不能修改外部的區域性變數
3)給區域性變數加上__block關鍵字,則這個區域性變數可以在block內部進行修改
示例**如下:
1 - (void如果寫成上面的**,xcode會在第六行「num = 6;」報錯:missing __block type specifier;)myfourblock2;
9 }
修改**如下:
- (void輸出結果:)myfourblock
; myfourblock();
}
2016-02-18**虐我千百遍,我待**如初戀!10:25:02.195
01-block[1016:45943] 6
OC中的Block,多型
首先我們來找一下每個區域內的記憶體位址 棧int a 10 nslog p a 堆 int p malloc 40 nslog p p 全域性靜態區 static int b 10 nslog p b 常量區 常量字串,儲存的是首位址 char str iphone nslog p str 區 ns...
oc中block的理解
block可能是我在學習objective c語法中遇到的第乙個puzzle的地方。確實,這個語法takes some getting use to.block實際是一種閉包,它是oc中對閉包的實現。閉包是什麼?清楚地記得這個是我去年在參加鵝廠的實習筆試的時候的乙個大題,記得沒錯是第二個大題。any...
OC 中的block使用
在ios的開發過程中,使用塊的地方很多也很方便,但是在使用塊的過程中要注意記憶體洩露的問題。在塊建立的時候,會對塊內的所有物件的引用計數加一,直到塊銷毀,所以在使用塊的過程中需要我們進行處理,在這裡以afnetworking的 舉例,如下 weak typeof self weakself self...