美文网首页
Block的深入了解

Block的深入了解

作者: xiaowu0125 | 来源:发表于2020-11-17 15:06 被阅读0次

block的结构体如下

Block是带有自动变量的匿名函数;

有三种类型的Block:

_NSConcreteGlobalBlock

_NSConcreteStackBlock

_NSConcreteMallocBlock     

Block截获外面的自动变量:

全局变量不会被截获;

没有被__block修饰的int,block体中对这个变量的引用是值拷贝,在block中是不能被修改的;

通过__block修饰的int,block体中对这个变量的引用是指针拷贝,它会生成一个结构体,复制这个变量的指针引用,从而达到可以修改变量的作用;

Block发生copy时机:

block作为方法或函数的返回值时,编译器会自动完成copy操作。

当block赋值给通过strong或copy修饰的id或block类型的成员变量时。

当 block 作为参数被传入方法名带有 usingBlock 的 Cocoa Framework 方法或 GCD 的 API 时。

相关文章

  • Objective-C block 深入了解

    Objective-C block 深入了解

  • Block的深入了解

    block的结构体如下 Block是带有自动变量的匿名函数; 有三种类型的Block: _NSConcreteGl...

  • 简单深入了解block

    用了block很长时间,也能避免相关的使用问题,想研究下大体底层实现,看了很多的优秀博客,这里写一下自己的理解。 ...

  • 深入了解Block的奥秘

    前言 block可以叫回调代码块,是iOS开发中至关重要的形式之一。不同的编程语言都会用到block, 只是体现形...

  • 深入了解Block的奥秘

    前言 block可以叫回调代码块,是iOS开发中至关重要的形式之一。不同的编程语言都会用到block, 只是体现形...

  • 关于Block的一些日常用法

    对于iOS开发者来说,相信block大家应该都耳熟能详。网上关于block的介绍和深入了解也有很多文章,这里就不对...

  • Block的使用

    本文简介 本文不会太深入的去了解block只是简单的介绍一下block的实际使用,总体来说是比较适合没有使用过bl...

  • 深入 Block

    (转自https://github.com/oa414/objc-zen-book-cn 禅与 Objective...

  • 深入 Block

    Block 前言 Block是OC中对C语言的扩展功能,是一种带有自动变量的匿名函数,Block在OC中的实现,点...

  • 2019-07-20

    Block深入浅出

网友评论

      本文标题:Block的深入了解

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