先出2个考题:
1、
上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么?
同样类型的题目:
问:打印的数字为多少?
有人会回答:mutArray是captureObject方法的局部变量,mutArray指针 保存到栈上,那么当执行完captureObject方法后,出去了作用域mutArray变量就会被系统自动释放。
所以当执行captureBlk([[NSObject alloc] init]); 的时候,mutArray为nil,每次打印的为0。
当然上面说的是错的。
打印出来的值分别是 1,2,3。
那么如果把上面代码中的mutArray改为weak类型:
NSMutableArray __weak *mutArray = [[NSMutableArray alloc] init];
结果又会是什么呢。

