Block被copy堆上的时机

不会被自动copy到堆的情况:
在ARC模式下,block作为函数的参数传递时不会被copy到堆上。但有两个例外,一是,方法名中含有usingBlock的Cocoa框架方法或GCD的API传递block时。

会被copy到堆上的情况:

  1. 调用Block的copy方法
  2. Block作为函数返回值
  3. 将Block赋值给__strong修饰符id类型的类或Block类型的成员变量时。
  4. 方法名中含有usingBlock的Cocoa框架方法或GCD的API传递block时。

你可能感兴趣的:(Block被copy堆上的时机)