block

   

    

     //Block  代码块

     //4种类型Block

        

     //声明格式:返回值类型 (^block名)(参数)

     

     //1--无参,无返回值

     //block的声明

        void(^block1)(void);

        //block的赋值

        block1 = ^{

            NSLog(@"hello world");

        };

     

        

     //block的使用

        block1();

        

     //2--有参数,无返回值

     /* void (^block2)(int a);

        block2 = ^(int a ){

            NSLog(@"%d",a);

        }; */

        void (^block2)(int a) = ^(int a ){

            

            NSLog(@"%d",a);

        };

        block2(99);

        

       //3--无参数 有返回值

        int (^block3)(void) = ^{

            return 88;

        };

        int num = block3();

        NSLog(@"num = %d",num);

        

    

        //4--有参数,有返回值

        

        int (^block4)(int b) = ^(int b){

    

            return b;

        };

        int num2 = block4(100);

        NSLog(@"num2 = %d",num2);

 //-------------------------------------------------------------

        int (^findMax) (int p,int q)= ^ (int p,int q){

            

            //return p >q ? p : q;

         

            if (p > q) {

                return p;

            }else{

                return q;

            }

        };

        int max = findMax(1,2);

        NSLog(@"max = %d",max);

        //block中  只能使用全局变量或者静态变量

        //__block =static

        

        static int number = 100;

        void (^block6)(void) = ^{

            number = 20;

            number2 = 10;

        };

        

        block6();

        NSLog(@"%d,%d",number,number2);

/

原文地址:https://www.cnblogs.com/chunji/p/5286511.html