block关键字的使用
1.block 是oc的一個(gè)數(shù)據(jù)類型
2.作用:用了封裝一段代碼,可以在任何時(shí)候調(diào)用執(zhí)行。即在編譯的時(shí)候忽略block修飾的代碼段,在調(diào)用這個(gè)代碼時(shí),也就是運(yùn)行時(shí),
編譯器會自動加載這個(gè)代碼,?so這樣的程序,效率非常高
3.語法:
定義一個(gè)block類型的變量:有參-》返回值類型 (^變量名) (參數(shù)類型1,參數(shù)類型2) ?? 。eg. void (^myblock)(int,int)
無參-》返回值類型 (^變量名) ??eg. void (^myblock)
定義一個(gè)block代碼段: ? ?有參-》^(參數(shù)類型1 參數(shù)名稱,參數(shù)類型2 參數(shù)名稱){// 代碼,也可以有返回值}
無參-》^(){//代碼}或?^{//代碼}
調(diào)用一個(gè)block代碼段:變量名(參數(shù)值...)
4.用typedef 定義一個(gè)bolck類型的變量:
定義: typedef ?返回值類型 (^自定義類型名) (參數(shù)類型,...)
使用: ? ??自定義類型名 ?變量名=^(參數(shù)類型 參數(shù)名稱,...)`{//代碼}
這個(gè)使用類似指向函數(shù)的指針:定義-》返回值 (*指針名) (參數(shù)類型,...),賦值-》指針名=函數(shù)名稱,調(diào)用-》指針名(參數(shù)值,...)
5.block代碼段內(nèi),可以訪問該代碼段外的變量,但是默認(rèn)不能修改外部的變量,
? ?使用 __block 關(guān)鍵字修飾的變量,在block代碼段內(nèi)就可以修改了
eg. __block int a=0;
?
轉(zhuǎn)載于:https://www.cnblogs.com/hui1107464497/p/4509778.html
總結(jié)
以上是生活随笔為你收集整理的block关键字的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己看不见进步
- 下一篇: gslang——原生golang/RPC