今天作浏览器Controller的时候,碰到了一个奇怪的问题:每次pop浏览器controller以后,等几秒,总会碰到相似下面的错误(其中的xxxController就是浏览器或继承他的子类Controller)git
*** -[xxxController respondsToSelector:]: message sent to deallocated instance 0xecf79b0
加各类断点、开Zombie,内存Malloc,Profiling都没法有效的找到问题所在。github
最后下决心一点一点的屏蔽代码,终于发现原来有经过代码建立的webView,对应的@property的修饰被误写为strong,改成weak以后,这个世界终于又平静了。web
问题解决,反过来想想,之因此会致使崩溃,应该是由于被strong修饰的webView在controller销毁的时候,尚未被销毁掉,还在加载网页并触发delegate的回调,而webView的delegate恰好是已被销毁的controller自己,因此,崩溃!浏览器
经测试,上述想法被印证。测试
PS:固然若是可以养成dealloc里把webwebView的delegate设置为nil并中止加载页面,这个问题也就不是问题了。code
随着iOS7快速占据半壁江山,不少应用已经从iOS6,甚至iOS7开始支持,ARC凭借方便的内存管理,不少项目已经默认采用,而在ARC的使用过程当中,最经常使用到的就是对属性@property的修饰:strong、weak,因此,兄弟们要留心,不要犯和我一样的错啊!继承