日常bug及解决方法记录

工作中经常会遇到一些Bug,时间长了有时候就忘记了,这样不好。

特地在这加一个随笔,把以后出现的有价值一点的bug记录在这里,提醒自己,也可以给刚入门的同学一些参考,避免这些坑。

1:界面已经销毁,代理回调会导致崩溃的bug

场景:  A Push to B

     在B中发送了一个异步请求,请求完成之后执行

     if(self.delegate && [self.delegate respondsToSelector:@selector(requestMessageFinish:)])

     {

                    [self.delegate requestMessageFinish:self.countDic];

     }

     在请求完成之前,就Pop到了A,等到请求完成之后,执行代理回调的时候,此时代理已经是僵尸对象了,导致崩溃。

解决:  在B viewDidDisappear的方法里,将delegate = nil即可避免。

2:断点调试时,打印变量控制台出现“no location, value may have been optimized out”或者“variable not available”

解决:  选择Product-->Scheme-->Edit Scheme-->Run

     如下图,将Build Configuration改为Debug模式。

     

原因:  Xcode默认有2个编译模式,一个是Debug,一个是Release。Release下不能调试程序,编译时有做编译优化,会比用Debug打包出来的运行快,另外包也会更小。

原文地址:https://www.cnblogs.com/fanzhiying/p/5166919.html