C21_OC11-block代码块

来源:互联网 发布:朗读软件哪个好 编辑:程序博客网 时间:2024/05/18 03:26
#import <Foundation/Foundation.h>typedef int (^BlockProduct) (int, int);  // 乘积typedef int (^BlockQuotient) (int, int);    // 商int main(){    // 局部变量    int nm = 99;    // 使用__block标注变量,这样就可以让Block操作了    __block int num = 99;        /**     定义block变量:     void       返回值     (^myBlock) 名称     ()         形参     **/    //void (^myBlock)() = ^(){    void (^myBlock)() = ^{      // 没有参数,可以省略后一对()        NSLog(@"Block代码块");        NSLog(@"和Groovy里的一样");                /** 默认局部变量是不能在Block代码块中修改的,除非用__block做了标注 **/        num = 345;            };  // 必须用;结尾        myBlock();  // 调用代码块        NSLog(@"%d", num);        /**     int        返回值类型为int     (int, int) 有两个参数,都是int类型    **/    int (^blockSum)(int, int) = ^(int a, int b){        int sum = a + b;        NSLog(@"和:%d", sum);                return sum;    };    blockSum(345,2);        BlockProduct blockPro = ^(int a, int b){        int pro = a * b;        NSLog(@"积:%d", pro);        return pro;    };    blockPro(432, 3);        BlockQuotient blockQuo;    blockQuo = ^(int a, int b){        int quo = a / b;        NSLog(@"商:%d", quo);        return quo;    };    blockQuo(200, 3);            return 0;}

- end
0 0
原创粉丝点击