Block的简单用法

来源:互联网 发布:qq音乐网络好声音视频 编辑:程序博客网 时间:2024/05/17 17:46

1.Block简单用法

#import <Foundation/Foundation.h>/**1.求两个数的和*/void createBlock(){    int (^sumBlock)(int,int) = ^(int num1,int num2){        return num1+num2;    };    /**1.1调用block*/    int c = sumBlock (10,9);    NSLog(@"%d",c);}/**2.求两个数的平方*/void sqrtBlock(){    int (^sqrts)(int,int) = ^(int num3, int num4){        return num3 *num4;    };    /**2.1调用block*/    int d = sqrts(10,10);    NSLog(@"%d",d);}/**3.打印星花,定义一个没有返回值没有参数的block*/void printBlock(){    void (^logBlock)(int) = ^(int star){        for (int i = 0; i < star; i++) {            NSLog(@"*******************");        }    };    /**3.1调用block*/    logBlock(3);}/**4.打印星花,定义一个没有返回值没有参数的block*/void logStar(){    void(^logstar)() = ^{            NSLog(@"**************");            NSLog(@"***************");            NSLog(@"***********************");    };    /**4.1调用block*/    logstar();}int main(int argc, const char * argv[]) {    @autoreleasepool {        // insert code here...        NSLog(@"Hello, World!");        /**1.求两个数的和*/        createBlock();        /**2.求两个数的平方*/        sqrtBlock();        /**3.打印星花*/        printBlock();        /**4.打印星花,无参数*/        logStar();    }    return 0;}

2.声明别名Typedef

 /**5.实现两个数的减法*/ /**5.1声明别名*/ typedef int (^MyBlock)(int,int); /**5.2创建一个block变量*/        MyBlock myBlock =  ^(int num1, int num2){            return num1 * num2;        };/**5.3block的调用*/        NSLog(@"%d",myBlock(5,5));
0 0