block
实际上是:指向结构体的指针 。默认情况下, block
的内存是在栈中, 它不会对所引用的对象进行任何操作;如果对block
做一次copy
操作(Block_copy(block);
), block
的内存就会在堆中,它会对所引用的对象做一次retain
操作,非ARC
: 如果所引用的对象用了__block
修饰, 就不会做retain
操作;ARC
: 如果所引用的对象用了__unsafe_unretained
\ __weak
修饰, 就不会做retain
操作.