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

结果又会是什么呢。

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式