iso-block

#import <Foundation/Foundation.h>

 

void test(void (^block1)())

{

    block1();

}

 

void test2(int (^blk2)(int, int))

{

   int sum = blk2(10, 20);

    NSLog(@"%d",sum);

}

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

    //1.指向函数的指针的定义 void (*p)();

    void (^block1)();

    block1 = ^(void){

        NSLog(@"hello world");

    };

    block1();

    int (^blk2)(int, int) = ^(int a, int b)

        {

            return a+b;

        };

    int sum =  blk2(10, 20);

    NSLog(@"%d",sum);

    //2.

    __block int k = 20;

    blk2 = ^(int a, int b)

    {

        k = 30;

        //访问外部变量

        return a+b+k;

    };

    sum = blk2(10, 20);

    NSLog(@"%d",sum);

    //3.

        int m = 10;

        blk2 = ^(int a, int b)

        {

            return a+b+m;

        };

        m = 20;

       sum = blk2(10, 20);

        NSLog(@"%d",sum);

        

        //4.

        

        

        test(

             ^(void){

            NSLog(@"sidjal");

        });

        

        m = 30;

        test2(^(int a, int b)

              {

                  return a+b+m;

              }

);

        }

    return 0;

}

posted @ 2015-08-17 21:06  ios-C  阅读(113)  评论(0编辑  收藏  举报