美文网首页
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 时。

    相关文章

      网友评论

          本文标题:Block的深入了解

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