• Block


       一:Block的声明:

        void(^myBlock)(int); 

         ↑          ↑          ↑ 

      返回值   变量名    参数 

    有返回值 和多个参数形式的例子:

        int(^myBlock((int, NSString *, NSObject);

       二:Block的创建:

       myBlock = ^(int i){

          NSLog(@"%d", i);

    };

        或者:

    void(^myBlock)(int) = 

    ^(int i){

          NSLog(@"%d", i);

    };

      三:Block的使用:

      myBlock(100);

    就像NSLog(@"aaaaa");一样,直接调用;

       四:Block当做参数传递给方法:

       - (void) testBlock:(void(^)(int)) myBlock{

          myBlock(10);

    }

        调用的时候: [self testBlock:myBlock];

    或者直接创建一个匿名的Block

       [self testBlock:^(int i){

        NSLog(@"%d", i);

    }];

       可以打个断点查看调用堆栈情况,这是一个回调,调用方法的之后再去调用块里的代码;

        五:使用typedof定义代码块类型

    typedef void(^MyBlock)(int);//红色的是块类型的名称

        创建:

    MyBlock block = ^(int i){

            NSLog(@"sss");

        };

        使用:

    block(1);

       在方法里当做参数就更简便了:

    - (void)testBlock1: (MyBlock) block{

        

    }

       

  • 相关阅读:
    word查找与替换
    细说ASP.NET Windows身份认证
    防钓鱼代码
    sql触发器
    url地址栏参数
    sql递归查询
    认识TWICImage类
    尝试发个贴
    泛型单元
    [学习官方例子]TArray
  • 原文地址:https://www.cnblogs.com/mohe/p/3262633.html
Copyright © 2020-2023  润新知