block的底层实现原理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了block的底层实现原理?相关的知识,希望对你有一定的参考价值。

block就是指向结构体的指针,编译器会将block的内部代码生成对应的函数,利用这个指针就可以调用这个函数.普通的局部变量是值传递,用__block ,static ,或者是全局变量就是地址传递

block的内存默认是存放在栈里面的,他不会对所引用的对象进行操作

如果对block做一次copy操作block的内存就会在堆区,他会对所引用的对象做一次retain操作.为了防止循环引用 MRC:用__block typeof(self) [这么写重用率比较高]就不会做retain操作  ARC:用__unsafe_unretained\__weak就不会做retain操作

以上是关于block的底层实现原理?的主要内容,如果未能解决你的问题,请参考以下文章

iOS底层原理 - Block本质探究

iOS中__block 关键字的底层实现原理

iOS爱上底层-Block实现与原理

iOS爱上底层-Block实现与原理

iOS爱上底层-Block实现与原理

iOS底层原理总结 - 探寻block的本质