采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我的理解是中间对象只是通过weak指针变为nil这一特性的监测及时销毁了nstimer,但没有解决真正意义上的nstimer对对象的持有,老师不知道我这种理解是否问题?
理解是对的,我们解决循环引用始终围绕两个思路,第一,避免产生环路。第二,在有环路的情况下,找到合适的时机去断开环路。针对NSTimer的循环引用就是应用了第二种思路,而对于NSTimer本身特殊的地方在于不好找断环的时机,课程中得案例巧妙利用了weak指针得特性,即在对象释放的时候,weak指针会自动被置为nil,这个特点在内存管理章节有针对原理性的详细分析,这里不再赘述。那么在timer的回调当中通过对weak指针是否为空的判断来及早断开环路。
非常感谢!
终于明白了好的书籍为什么要看很多次了,看一次可能只是理解个大概,只是记住了结论,多看几次,反复体会才会明白其中道理.
登录后可查看更多问答,登录/注册
从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系
1.4k 11
2.0k 9
1.3k 9
1.1k 8
1.0k 8
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号