block

作者: ljzza | 来源:发表于2019-05-06 10:20 被阅读0次

1Block 封装了一段代码,可以在任何时候执行

2Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值

Block的标志:^

//block跟函数很像,可以保存代码,有返回值,有形参

指向函数的指针

定义Block,定义时候不会被执行(没有参数,没有形参的block)

void (^myblock)() = ^{ NSLog(@“sdfdsfsdf")}; 如果没有形参可以省略后面的()

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

myblock();

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

return  a+b;

};

int c =    sumblock(10,11);

Block 内部可以访问外面的变量,默认情况下内部不能修改外面的局部变量,给局部变量加上__block关键字,这个局部变量就可以block内部修改

block总结

1.如何定义block变量:

int (^myBlock)();

void (^myBlcok)(int,int);

2如何利用block封装代码:

^(int a,int b){

return a-b;

};

^(){NSLog(@“sdfs”);};

^{NSLog(@“safdds”);};

3 block访问外面变量

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

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

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

4利用typedef定义block类型

typedef (^MyBlock)(int,int);

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

MyBlock b1,b2;

相关文章

  • iOS开发之Block原理探究

    Block概述 Block本质 Block调用 Block分类 Block循环引用 Block原理探究 Block...

  • block的使用

    定义block 返回类型 (^block名称)(参数) = ^(){block内容}; 调用block block...

  • Block 02 - __block

    Block 02 - __block __block 的作用 __block 可以解决 Block 内部无法修改 ...

  • iOS面试之Block大全

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • iOS面试之Block模块

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • iOS Block

    Block的分类 Block有三种类型:全局Block,堆区Block,栈区Block 全局Block 当Bloc...

  • iOS block 为什么官方文档建议用 copy 修饰

    一、block 的三种类型block 三种类型:全局 block,堆 block、栈 block。全局 block...

  • iOS开发block是用copy修饰还是strong

    Block分为全局Block、堆Block和栈Block1、在定义block没有引用外部变量的时候,block为全...

  • block 初探

    全局block, 栈block, 堆block

  • Block

    一、Block本质 二、 BlocK截获变量 三、__block 修饰变量 四、Block内存管理 五、Block...

网友评论

      本文标题:block

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