1,为什么需要加__block ARC环境下,一旦Block赋值就会触发copy,__block就会copy到堆上,Block也是__NSMallocBlock.ARC环境下也是存在__NSStackBlock的时候,这种情况下,__block就在栈上.ARC环境下,Block捕获外部对象变量,是都会copy一份的,地址都不同.只不过带有__block修饰符的变量会被捕获到Block内部持有. MRC环境下,只有copy,__block才会被复制到堆上,否则,__block一直都在栈上,bloc