先出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];

结果又会是什么呢。

网友评论