Block

作者: J星O海E | 来源:发表于2021-06-29 01:31 被阅读0次

    Block是什么

    block 实际上就是 Objective-C 语言对于闭包的实现,是一个对象,拥有isa指针。

    block的Copy

    block中的isa指向的是该block的Class。

    _NSConcreteStackBlock     栈上创建的block

    _NSConcreteMallocBlock  堆上创建的block

    _NSConcreteGlobalBlock   作为全局变量的block

    不使用外部变量的block是全局block

    使用外部变量并且未进行copy操作的block是栈block

    对栈block进行copy操作,就是堆block,而对全局block进行copy,仍是全局block

    即如果对栈Block进行copy,将会copy到堆区,对堆Block进行copy,将会增加引用计数,对全局Block进行copy,因为是已经初始化的,所以什么也不做。

    参考:https://www.jianshu.com/p/0e1a0e7e988d

    https://blog.ibireme.com/2013/11/27/objc-block/

    相关文章

      网友评论

          本文标题:Block

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