版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xjh093/article/details/85211318
惊天大崩溃
为什么说是惊天大崩溃
?
因为一崩溃就直接到了main
函数,而且没有一点崩溃信息,一点都没有。
自定义了一个输入框控件
在点击输入框时
直接来到这里:
调试
多次调试的过程中
发现崩溃闪退的过程中
并不是马上退出到主屏慕
而是界面卡了好几秒
才退出的
多次调试
- iPhone 5s 10.3.2 : 正常运行
- iPhone 6 11.2.2 : 点击输入框,
直接崩溃
- iPhone 6P 11.3.1 : 点击输入框,
直接崩溃
继续调试
通过注释全部代码
一点一点放开的方式
不断调试
终于找到了大Bug
罪魁祸首
因为业务需要
需要知道当前是否在输入状态
那就想到是不是第一响应者
就定义了一个BOOL
值 isFirstResponder
结果是UIResponder
已经定义了
那好吧
就改一下
用firstResponder
.h 文件
@property(nonatomic, assign) BOOL firstResponder;
.m文件
- (BOOL)firstResponder{
return _textView.isFirstResponder;
}
当调试进行到这里时,注释这了段代码
//- (BOOL)firstResponder{
// return _textView.isFirstResponder;
//}
居然再也
没有崩溃了!
猜想
在 iOS 10
测试时,运行正常
到了iOS 11
测试时,就莫名崩溃
难道是在 iOS 11
系统内部有这个方法:
- (BOOL)firstResponder{
//...
}
因此重写方法的关系
导致系统受不了!
直接崩溃了?!
总结
如果你像我一样
自定义的一个输入框
还恰好定义了一个firstResponder
属性
又用了系统是 iOS 11
的手机来测试
那么
恭喜你
你找到了一个惊天大Bug
!
一行代码搞定视图圆角
https://github.com/xjh093/JHViewCorner