在ARC环境下, 我们常常会使用weak的修饰符来修饰一个变量, 防止其在block中被循环引用, 但在特殊情况下,
我们在block中又使用strong来修饰这个在block外刚刚用__weak修饰的变量
在block中需要对weakSelf进行strong, 保证代码在执行到block中,self不会被释放, 当block执行完后, 会自动释放该strongSelf
当加上修饰符strong时, 当别处把变量释放掉, 但调用该变量的block如果仍然没有执行结束, 那么系统就会等待block执行完成后在释放, 对该变量在block中的使用起到了保护的作用. 当block执行结束后会自动释放掉