老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

OC中的block-創新互聯

block的概念OC中的block
1     block是一個類型,block對象是一個C級別的語法和運行機制,它與標準的C函數類似,不同之處在于,它除了有可執行代碼以外,它還包含了與堆、棧內存綁定的變量。因此,Block對象包含著一組狀態數據,這些數據在程序執行時用于對行為產生影響
2     你可以用Block來寫一些可以傳到API中的函數語句,可選擇性地存儲,并可以使用多線程.作為一個回調,Block特別的有用,因為Block即包含了回調期間的代碼,又包含了執行期間需要的數據
3     由于Objective-C 和 C++ 都是衍生自 C,block被設計為可同時兼容三種語言

block的基本用法

網站建設哪家好,找成都創新互聯公司!專注于網頁設計、網站建設、微信開發、小程序制作、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了吳起免費建站歡迎大家使用!
 1     用 "^" 操作符來聲明一個Block變量,并指明Block述句的開始,Block的主體部分包含在{}內,像下面的例子中一樣(與C語法一樣,";" 指明語句的結束
 2     例:
 3   int (^myBlock)(int) =^(int num){return num * nuItiplier;};
 4 
 5   1)block最簡單形式
 6         定義格式:
 7  void test(){};---->void (test)()=^{};
 8             返回值類型 (^變量名)(參數)=^{
 9                 代碼塊
10             };    
11         調用格式:
12              block 變量名();
13     
14         例如:
15  //定義block變量的同時進行賦值16  void(^myTest)()=^{
17 
18             };
19  //先定義后賦值20  void (^myTest1)();
21             myTest1=^{
22 
23             };
24 
25   //使用block26         myTest();    
27 
28  帶有參數的block
29 
30  void (^myBlock)(int ,int )=^(int x,int y){};
31 
32 帶有參數并帶有返回值的block
33  int (^blockSum)(int,int)=^(int x,int y){return x+y};

block的typedef

 1 指針回顧
 2     指針和指針的關系
 3   
 4     指針和數組之間的關系
 5   1)指針和一維數組(數組指針)
 6   2)指針和二維數組
 7 
 8     指針和字符串
 9 
10     指針和函數
11   1)指針函數
12   2)函數指針
13 
14      指針和結構體
15    
16      指針和文件
17 
18 函數指針的回顧
19   1)函數指針的使用:
20             函數指針變量定義的一般形式為:
21                 類型說明符 (*指針變量名)();
22             其實"類型說明符" 表示被指函數的返回值的類型
23             (* 指針變量名)表示 * 后面的變量是定義的指針變量
24     
25              typedef int (*newType)(int x ,int y);
26             newType 是別名
27 
28 block別名的使用
29 
30 1) 
31  //MyBlock2 是一個bolock 變量名
32  //先定義block變量,再給變量賦值
33  //  myBlock2 特點:
34  //             只能賦值這樣block ;1 沒有返回值  2沒有參數35   void (^myBlock2)();
36                 myBlock2=^{};
37                 myBlock2();
38 
39 2)給沒有返回值 并且沒有參數的block類型起一個別名
40                 typedef void (^newBlockType)();
41  //此時注意,newBlockType不再是一個block類型的變量名了,是一個新的類型42         
43             newBlockType f1;//f1 是一個 沒有返回值,沒有參數類型的變量名44             
45             f1=^{};
46             f1();
47 
48 3)有參數的
49             typedef int (^newBlockType2)(int ,int);
50  new BlockType2 f2=  ^(int numb,int num2){
51 return numb+num2;
52             };
53  int s =f2(20,12);

在block內部修改外部的值

1 需要在外部的變量前 加上__block
2 
3     例如:
4         __block int m =1200;
5 
6 void (^myBlock)()=^{
7                m=1000;   
8         };

將block作為參數使用

 1 void days(void (^dayBlock)(){
 2      NSLog(@"起床");
 3       dayBlock();
 4      NSLog(@"起床");
 5 }    
 6 
 7 //調用days有兩種方法 8 1)傳一個block類型的變量過去
 9 void(^block1)()=^{};
10 days(block1);
11 
12 2)調用函數的同時,同時傳遞參數
13 days(^{});

將block作為函數的返回值

 1 1)使用typedef 定義一個新的類型
 2 //給block起一個別名 3 
 4 typedef int (^newType)(int num1,int num2);
 5 
 6 2)使用新類型作為函數的返回值
 7 
 8 //定義一個返回值是block類型的函數 9 newType test4(){
10       newType work=^(int x,int y){
11 return x+y;
12       }
13   return work;
14 }

block使用技巧以及注意

 1 1)block變量用作方法的參數的時候
 2 最好把參數類型列表部分加上,具體的形參名
 3 void test4(int (^myBlock)(int num1,int num2)){
 4 
 5 }
 6 //當block代碼塊直接作為函數的參數
 7 //寫法發生變化了
 8 //參數 這樣寫: ^int (int x,int y){return x+y;} 9 int main(int argc,const char *argv[]){
10       test4(^int(int num1,int num2)myBlock);
11   return 0;
12 }
13 
14 
15 
16 
17 block和函數的區別
18 1)定義方式不一樣
19 2)block是一個類型
20 3)函數不可以嵌套定義,block可以嵌套
21 4)block因為是一種數據類型,所以可以作為函數的參數和返回值
22    函數則不可以    
23 5)block可以作為類型修飾變量,函數不行

新聞標題:OC中的block-創新互聯
路徑分享:http://www.xueling.net.cn/article/depepi.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 成人精品一区日本无码网站 | 视频二区狠狠色视频 | 午夜dj影院在线 | 超碰激情网 | 内射在线Chinese | 青青国产线免观 | 特级做AA爰片毛片免费看 | 国产色欲AV一区二区三区 | 色啪视频 | 久久99精品久久久久久9 | 9999777做爰| 国产精品女丝袜白丝袜 | 免费一级a毛片夜夜看 | 国产免费无遮挡在线观看视频 | 国产欧美在线播放视频 | 大地影视资源中文 | 日本三级日本三级日本三级极 | 天堂中文av | 国产精品无码色一区二涩欲区三区 | 久久综合狠狠综合久久综合88 | 免费无码又爽又刺激A片涩涩 | 一区二区视频网站 | 日本激情视频在线播放 | 中文字幕69 | 日韩一二区在线观看 | 深夜看国产毛片在线视频香蕉 | 真人女人一级毛片免费播放 | 99re6热在线精品 | 国产a∨精品一区二区三区仙踪林 | 97人人做人人爱 | GOGOGO免费高清看中国国语 | 久久91在线 | 在线亚洲高清揄拍自拍一品区 | 啊灬啊灬啊灬快灬A片免费 女人喷液全过程在线观看 色婷婷综合和线在线 | 成人精品视频 | 99精品国产高清一区二区麻豆 | 中文字幕在线观看国产推理片 | 中文字幕精品影院 | 国产成人片一区在线观看 | 国产精品无码翘臀在线看 | 超碰97人人做人人爱少妇 |