iOS 关于第一响应者的惊天大崩溃!
  nDUQ4LHdRnl1 2023年11月02日 116 0


惊天大崩溃

为什么说是​​惊天大崩溃​​?

因为一崩溃就直接到了​​main​​函数,而且没有一点崩溃信息,一点都没有。

自定义了一个输入框控件

在点击输入框时

直接来到这里:

iOS 关于第一响应者的惊天大崩溃!_输入框


调试

多次调试的过程中
发现崩溃闪退的过程中
并不是马上退出到主屏慕
而是界面卡了好几秒
才退出的


多次调试

  • 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​



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
nDUQ4LHdRnl1
最新推荐 更多