block用copy修饰其实就是把栈区的block转移到堆区。因为栈区的内存由编译器自动管理,且栈区存储的是局部变量和临时变量,变量出了作用域就会释放,这种情况下block一旦被释放,我们再去调用block就会出现野指针错误,程序会崩溃。而把block转移到堆区之后,内存由我们来管理,block就不会轻易被释放掉了。