iOS经验分享

Block原理

2020-08-04  本文已影响0人  钎探穗

block是一个对象,可以捕获外部变量,是一个匿名函数,可以保存代码块。使用copy进行修饰,因为一开始处于静态区,当调用外部变量的时候,处于栈区,因为栈区的内容随时可能被销毁,通过copy进入堆区进行操作。block需要调用才能执行,因为funcptr保存当前代码块中的函数,需要通过funcptr方法调用,才能进行操作。因此block需要调用才能响应。

block根据内存分为3类:

  1. NSGlobalBlock,在全局静态区。
  2. NSMallocBlock :处于堆区,有外部变量引入。
  3. NSStackBlock:处于栈区。

Block在使用中对于循环引用问题的解决方案:

上一篇下一篇

猜你喜欢

热点阅读