先出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];
结果又会是什么呢。
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
学习是年轻人改变自己的最好方式