美文网首页
浅谈OC中block

浅谈OC中block

作者: 萤火驻守心间 | 来源:发表于2022-06-01 17:18 被阅读0次

Block的循环引用:
block强引用self,self强引用block。解决方案:对self进行弱引用。

内部修改外部变量:
block不允许修改外部变量的值,这里的外部变量指的是栈中指针的内存地址。__block的作用是只要观察到变量被block使用,就将外部变量在栈中的内存地址放到堆中。

三种block:
1、NSGlobalBlock(全局):没有访问 auto变量 的block ,(.data区)数据区,一般存放全局变量, __NSGlobalBlock存放在这里
2、NSStackBlock(栈block):访问了auto变量 的block ,存放在栈区
3、NSMallocBlock(堆block):当一个__NSStackBlock调用了copy操作,返回的就是一个__NSMallocBlock,存放在堆区

相关文章

  • 浅谈OC中block

    Block的循环引用:block强引用self,self强引用block。解决方案:对self进行弱引用。 内部修...

  • swift 调用 OC中的block

    OC中声明block; OC中实现block swift中实现

  • iOS原生&JS交互

    OC 获取js中的key OC调用js方法 JS调用OC中不带参数的block JS调用OC中带参数的block ...

  • Swift之闭包

    前言 闭包类似于OC的block,但是比OC的block应用面更广 在OC中block是匿名函数 在swift中函...

  • Swift 之闭包

    闭包 闭包类似于 OC 的 block,但是比 OC 的 block 应用面更广 在 OC 中 block 是匿名...

  • 浅谈OC中Block的本质

    Block简介 block是将函数及其执行上下文封装起来的一个对象 在block实现的内部,有很多变量,因为blo...

  • iOS Block本质笔记

    OC中定义block block访问外部参数 OC转C++分析 block的变量捕获机制 为了保证block能够正...

  • OC中block底层原理总结(下)

    关于OC中block的本质结构、block的变量捕获方式请查看OC中block底层原理总结(上)需要先看懂上篇文章...

  • swift 闭包(类似OC中block)

    swift中的闭包 类似OC中block OC中block 回顾创建个HttpTool类.h .m 控制器中 sw...

  • 深入 Block

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

网友评论

      本文标题:浅谈OC中block

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