iOS 关于第一响应者的惊天大崩溃!

惊天大崩溃

为什么说是惊天大崩溃
因为一崩溃就直接到了main函数,而且没有一点崩溃信息,一点都没有。
自定义了一个输入框控件
在点击输入框时
直接来到这里:
在这里插入图片描述


调试

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


多次调试

  • iPhone 5s 10.3.2 : 正常运行
  • iPhone 6 11.2.2 : 点击输入框,直接崩溃
  • iPhone 6P 11.3.1 : 点击输入框,直接崩溃

继续调试

通过注释全部代码
一点一点放开的方式
不断调试
终于找到了大Bug


罪魁祸首

因为业务需要
需要知道当前是否在输入状态
那就想到是不是第一响应者
就定义了一个BOOLisFirstResponder
结果是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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪冷啊

你的鼓励是对我的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值