在ARC 情况下,如下几种情况Block会自动从栈复制到堆: - 对Block执行copy操作 - 将Block作为方法返回值 - 将Block赋给带有__strong修饰符的id类型的类,或者Block类型成员变量的时候。 - 将Block赋给带copy修饰符的成员变量的时候 - 在方法名中含有usingBlock的Cocoa框架或者GCD API中作为参数传递的时候。