zoukankan      html  css  js  c++  java
  • 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{

        

    }

       

  • 相关阅读:
    魔法跳舞链 51Nod
    反射
    JDBC---后端服务器与数据库交互的桥梁
    多线程
    IO流
    继承与重写
    java.util包
    多态
    Java.lang包
    异常
  • 原文地址:https://www.cnblogs.com/mohe/p/3262633.html
Copyright © 2011-2022 走看看