Block

来源:互联网 发布:神马快递单打印软件 编辑:程序博客网 时间:2024/06/07 19:48

Block

objective-c中可以用block代替delegate使用,更简洁灵活  

一、相关概念

声明:对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在。定义:具体就是函数的实现过程 写明函数体。调用:调用一个函数 -_-|||

二、 形式

一、带参数无返回值

    //=左边:声明 =右边:定义     void(^blockFunc)(int)=^(int n){          NSLog(@"选择了什么...");     }     //调用     blockFunc(6);

二、带参数返回值

    //=左边:声明 =右边:定义    int (^blockFunc)(int,int)=^(int n1,int n2){          return n1+n2;     }     //调用    NSLog(@"%d",blockFunc(100,20));

三、不带参数和返回值

     void(^blockFunc)()=^(){         NSLog(@"no parameter no return");     };

四、typedef 定义block 类型 (和指向函数的指针很像)

    //blockFunc 是typedef定义的别名     typedef int(^blockFunc)(int,int);    //相当于声明 int(^block1)(int,int);int(^block2)(int,int);     blockFunc block1,block2;     //定义     block1=^(int a,int b){               return a-b;     };     block2=^(int a,int b){               return a+b;     };   

}

三、应用

(未完待续)

1 0