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;

    };

  • 相关阅读:
    Linux下C语言的调试--转
    linux下c的网络编程---转载
    redis学习资料
    Keepalived配置与使用--转载
    Redis configuration
    keepalived程序包
    Keepalived 使用指南
    myeclipse解决JSP文件script调整背景颜色
    java 面试题汇总(未完成)
    c++ primer plus(文章6版本)中国版 编程练习答案第八章
  • 原文地址:https://www.cnblogs.com/pengyunjing/p/5901067.html
Copyright © 2011-2022 走看看