你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 嵌入式&iOS:回調函數(C)與block(OC)傳 參/函數 比照

嵌入式&iOS:回調函數(C)與block(OC)傳 參/函數 比照

編輯:IOS開發綜合

C的回調函數:

callBack.h

1)、聲明一個DosomeThingCount函數,參數為一個(無前往值,1個int參數的)函數。

void DSTCount(void(*CallBack)(int data_i32));

 

callBack.c

1)、在DosomeThingCount函數,對運轉次數自增,並調用參數--函數。

void DSTCount(void(*CallBack)(int data_i32))
{
    static int numb = 0;
    numb++;
    (*CallBack)(numb);
}

 

main.c

1)、定義一個customDosomeThingCount函數,打印數據。

void customDSTCount(int data_i32)
{
    printf("%d\n",data_i32);
}

2)、main函數裡,運轉 callBack.h 的 DSTCount 函數,參數為main裡的customDSTCount函數。

while (1)
{
    DSTCount(customDSTCount);
}

 

 

 

OC的Block:

MyButton.h(承繼於UIButton):

1)、定義一個Block的參數數量、類型。

typedef void(^ButtonBlock)(int data_i32);

2)、聲明一個doSomeThingCount函數,帶Block參數。(留意,這裡不需求加*,類用習氣了,參數隨手就加個*)

-(void)DSTCount:(ButtonBlock)myButtonBlockPTR;

 

MyButton.m(承繼於UIButton):

1)、在doSomeThingCount函數,對運轉次數自增,並調用Block參數。

-(void)DSTCount:(ButtonBlock)myButtonBlockPTR
{
    static int numb = 0;
    numb++;
    myButtonBlockPTR(numb);
}

 

RootViewControl.m(self.Window.rootViewController):

1)、viewDidLoad函數,定義一個(100,100,100,100)、白色的按鈕實例,按鈕添加事情,把按鈕加到self.view上。

MyButton *tempButton = [[MyButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    
tempButton.backgroundColor = [UIColor redColor];
    
[tempButton addTarget:self action:@selector(mybuttonClick:) forControlEvents:UIControlEventTouchUpInside];
    
[self.view addSubview:tempButton];

2)、按鈕點擊調用,調用MyButton裡的DSTCount函數,Block參數直接輸出。

-(void)mybuttonClick:(MyButton*)button
{
    [button DSTCount:^(int data_i32) {
        printf("%d\n",data_i32);
    }];
}

 

 

 

 

 

 

圖片補充:

C回調函數:

1)、CallBack.C

2)、CallBack.h

3)、main.c

 

 

 

OC的Block

1)、MyButton.h

2)、MyButton.m

3)、RootViewControl.m

4)、運轉

【嵌入式&iOS:回調函數(C)與block(OC)傳 參/函數 比照】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved