偶然找到一个8.0系统的手机,安装上项目后,发现在上面出现崩溃,但是在10.0以上系统的手机上面并没有出现 崩 溃,于是乎,找bug路程开始了:
定位: 发生崩溃时,断点定位到 “ 键盘将要成为第一响应者的时候”,也就是调出键盘的时候。
确认原因: 重启程序时,再次调出键盘,发现并没有崩溃,键盘调出成功,但是当切换到其他页面,再次返回的时候崩溃重 现,最后确定了会发生崩溃的两个页面,两个页面有相同的吊起键盘操作,同样,也都注册了键盘将要出现的通知, 在看过前辈写的代码后(项目是接手的),发现视图也正常销毁,但是在其中的一个页面的键盘将要出现的通知却没 有注销,并且视图都是添加到keywindow上的,看完两个页面的代码后,除了这个没有销 毁的通知外,并没有发现 其他的明显问题。
解决: 将键盘将要弹出的通知销毁,发现bug排除。
总结: 通知是成双成对的,有注册通知,就必须销毁通知,不然后期用的多了,会造成一些莫名的bug。 按照代码的思路, 又重新写了一个demo进行测试,发现确实造成了崩溃,但有一点问题: 此现象在8.0机器上面了闪退,但是在10.0的上 面却没事,不太明白是什么原因。又知道答案的请告知。。。