Block的本质是什么?

作者: zgsddzwj | 来源:发表于2017-02-19 17:23 被阅读271次

block对象就是一个结构体,里面有isa指针指向自己的类(global malloc stack),有desc结构体描述block的信息,__forwarding指向自己或堆上自己的地址,如果block对象截获变量,这些变量也会出现在block结构体中。最重要的block结构体有一个函数指针,指向block代码块。block结构体的构造函数的参数,包括函数指针,描述block的结构体,自动截获的变量(全局变量不用截获),引用到的__block变量。(__block对象也会转变成结构体)

block代码块在编译的时候会生成一个函数,函数第一个参数是前面说到的block对象结构体指针。执行block,相当于执行block里面__forwarding里面的函数指针。

相关文章

  • OC底层原理(八):Block

    block是经常使用的一种技术,那么block的本质是什么呢? Block的本质 block本质上也是OC对象,它...

  • block:block是什么、block的本质、block的类型

    一、block是什么二、block的本质三、block的类型 一、block是什么 block其实也是一个OC对象...

  • block的理解

    1..block的原理是什么?本质是什么? block本质上也是一个OC对象,它内部也有个isa指针,block是...

  • iOS Block详解

    第一部分:Block本质 Q:什么是Block,Block的本质是什么? block本质上也是一个OC对象,它内部...

  • Block随记<一>

    Block本质是什么 Block的本质从两方面体现: Block本质也是一个OC对象,因为它的内部也有isa指针;...

  • block

    1.block的原理是什么?本质是什么? block本质上也是一个OC对象,它内部也有一个isa指针, block...

  • Block探究

    block的实质是什么?一共有几种block?都是什么情况下生成的? block的实质是什么? block本质上也...

  • 七.Block初识

    block的原理是什么?本质是什么?本质是OC对象,block封装了函数调用以及函数调用环境的OC对象 __blo...

  • Block 原理面试(1)

    玖:Block 原理面试(1) block的原理是怎样的?本质是什么?答:Block 的本质是一个封装了函数及其调...

  • iOS底层探索之Block(四)——Block的探索和源码分析

    Block的本质是什么吗?__Block底层又做了什么呢? 在上一篇博客中,已经探索到block的本质是结构体(_...

网友评论

    本文标题:Block的本质是什么?

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