- MRC 模式下,block 默认是存档在栈中的,随时可能被系统回收,进行
copy操作,就可以将 block 放在堆中,形成互相指引的效果,当然此时需要注意 block 闭环引起的内存泄露问题。如果使用retain操作,只会使其引用计数 +1,block 内存还是在栈中,并没有转移到堆上。 - ARC 模式下,使用
copy或者strong,其效果是一样的,编译器自动对 block 进行了copy操作。如果用copy修饰 block,也是提醒我们:编译器自动对block进行了copy操作,不用copy修饰也可以,如果使用者在使用之前对其自行copy的话,就显得多余而低效。