不会被自动copy到堆的情况:
在ARC模式下,block作为函数的参数传递时不会被copy到堆上。但有两个例外,一是,方法名中含有usingBlock
的Cocoa框架方法或GCD的API传递block时。
会被copy到堆上的情况:
- 调用Block的copy方法
- Block作为函数返回值
- 将Block赋值给
__strong
修饰符id类型的类或Block类型的成员变量时。 - 方法名中含有
usingBlock
的Cocoa框架方法或GCD的API传递block时。
不会被自动copy到堆的情况:
在ARC模式下,block作为函数的参数传递时不会被copy到堆上。但有两个例外,一是,方法名中含有usingBlock
的Cocoa框架方法或GCD的API传递block时。
会被copy到堆上的情况:
__strong
修饰符id类型的类或Block类型的成员变量时。usingBlock
的Cocoa框架方法或GCD的API传递block时。本文标题:Block被copy堆上的时机
本文链接:https://www.haomeiwen.com/subject/ejrxgftx.html
网友评论