美文网首页
block用法小结

block用法小结

作者: AYuan_ | 来源:发表于2016-03-26 23:37 被阅读118次

基本用法

  • 作用
    block用来保存一段代码
  • block的标志: ^
  • block与函数
    • block与函数很像
      1.可以保存代码
      2.有返回值
      3.有形参
      4.调用方式一样
  • Block的使用很像函数指针,不过与函数最大的不同是:Block可以访问函数以外、词法作用域以内的外部变量的值。换句话说,Block不仅 实现函数的功能,还能携带函数的执行环境

定义block变量

/**
如果block没有形参,可以省略后面的()
*/
void (^myBlock)() = ^{
     NSLog(@"------");
     NSLog(@"--------");
 };
 myBlock();

定义属性block

@property (nonatomic, copy) void (^completionClock)();

带参数和返回值的block

int sum(int a, int b)
{
    return a + b;
}

int main()
{
    //指向函数的指针
    int (*p)(int,int) = sum;
    int d = p(10,12);
    NSLog(@"%d",d);
    
   //OC中不常用指向函数的指针,一般用block代替
    int (^sumblock)(int, int) = ^(int a, int b) {
        return a + b;
    };
    
    int c = sumblock(11, 11);
    NSLog(@"%d",c);

    //用block输出n条直线
    void (^lineblock)(int) = ^(int n)
    {
        for (int i = 0; i < n; i++) {
            NSLog(@"------");
        }
    };
    myblock2(5);
    return 0;
}

block使用总结

1>如何定义block变量
int (^sumBlock)(int,int); void (^myBlock)();
2>如何利用block封装代码

^(int a, int b) {
    return a - b;
};
^() {
    NSLog(@"----");
};
^ {
    NSLog(@"-----");
};
  • block访问外部变量

    • block内部可以访问外面的变量
    • 默认情况下,block内部不能修改外面的局部变量
    • 给局部变量加上__block关键字,这个局部变量可以在block内部修改
  • 利用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;
};

相关文章

  • block用法小结

    基本用法 作用block用来保存一段代码 block的标志: ^ block与函数block与函数很像1.可以保存...

  • Block 用法小结

    1.Block的定义格式 返回值类型(^block变量名)(形参列表) = ^(形参列表) {};调用Block保...

  • Swift之Block

    block用法

  • 关于Block

    1.Block基本用法: block声明返回值(^block变量名)(参数)void(^block)(); blo...

  • Kotlin的run,let,apply,also,with的用

    run函数 用法一 定义:public inline fun(block:()->R):R=block() 功能:...

  • 白话block

    本文内容 什么是block? block的用途 block的用法 block在使用中遇到的问题 如何使用xcode...

  • ios block用法与分析

    一: block的基础用法 block声明: int(^blockDemon)(inta,intb) ,其中int...

  • Block基础看它就够了

    Block基本用法 "Block语法" 1.作为方法时 - (void)testGlobalBlock:(NSSt...

  • Block用法

    概述 block:苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性。匿名函数:没有函数名的函数,一对...

  • iOS开发-block的使用(上)

    引言:本文旨在介绍block的基本用法,怎么定义一个block,怎样使用block. block的声明与定义 首先...

网友评论

      本文标题:block用法小结

      本文链接:https://www.haomeiwen.com/subject/oogdlttx.html