zoukankan      html  css  js  c++  java
  • block的基本使用

    block用来保存一段代码

    block的标志:^

     

    block跟函数很像:

    1. 可以保存代码

    2. 有返回值

    3. 有形参

    4. 调用方式一样

     

    定义bolock变量

    1

    void (^myBlock)() = ^{

          NSLog(@“———————“);

    };

    利用block变量调用block内部的代码

    myblock();

    2

    //  如果block没有形参,可以省略后面的()

    int (^sumBlock)(int, int) = ^(int a, int b){  

         return a + b;

    };

    调用block

    int c = sumBlock(10, 11);

    或者:

    int (^sumBlock)(int, int);

    sumBlock = ^(int a, int b) {

          return a + b;

    };

    3

    void (^lineBlock)(int) = ^(int n)

    {

           for (int i = 0; i<n; i++) {

                NSLog(@“——————“);

           }

    };

    调用:

    lineBlock(5);

     

     

    blocky要掌握的东西

    1>  如何定义block变量

    int (^sumBlock)(int, int);

    void (^myBlock)();

    2>  如何利用block封装代码

    ^(int a, int b) {

        return a - b;

    };

     

    ^() {

        NSLog(@“————“);

    };

     

    ^ {

         NSLog(@“————“);

    };

     

    3>  block访问外面变量

    block内部可以访问外面的变量

    默认情况下,block内部不能修改外面的局部变量

    给局部变量加上_block关键字,这个局部变量就可以在block内部修改

     

    4>  利用typedef定义block类型

    typedef int (^MyBlock)(int, int);

    以后就可以利用MyBlock这种类型来定义block变量

    MyBlock block;

    MyBlock b1, b2;

     

    b1 = ^(int a, int b) {

         return a - b;

    };

     

    MyBlock b3 = ^(int a, int b) {

           return a - b;

    };

  • 相关阅读:
    二叉排序树的建立与遍历 Anti
    SDUT ACM 2144 最小生成树,克鲁斯卡尔模板 Anti
    用STL优先队列对字符串排序 Anti
    HDU 1176 免费馅饼 水dp Anti
    SDUT ACM 2408 Pick apples 贪心+完全背包 Anti
    筛选法找素数模板 Anti
    JS获取事件的目标
    Javascript中的Prototype和Constructor
    有关于ValueOf( )和toString( )
    JavaScript Animate
  • 原文地址:https://www.cnblogs.com/pengyunjing/p/5901067.html
Copyright © 2011-2022 走看看