先描述本人遇到的问题:

1.在iPad上,iOS8的系统,点击某个cell,崩溃,崩溃到的位置是 [UIApplication(BTGMethodSwizzler) btg_swizzleSendEvent:]

2.在iOS 9的系统及以上,无崩溃,但是所有的cell都没有事件响应

经调研资料显示:
[UIApplication(BTGMethodSwizzler) btg_swizzleSendEvent:] 是bugtags的 .a 静态库中的一个 category ,这个 category 扩展了一个 UIApplication 类的一个方法 sendEvent:

通过 Hopper 查看这个 .a 静态库中的category BTGMethodSwizzler 实现了什么,然而,并没有找到原因。

然后我自己在我的app中的某个类也实现了这个category,对 btg_swizzleSendEvent: 方法进行交换,发现了一个有趣的事儿,就是我点击某个cell,被我交换的那个方法有响应了,但是并没有转发到我点击的那个cell。所以问题,就发生在了,我这个项目中,某个文件在执行代码的时候,肯定把所有的gesture都删除了,导致事件全部失效;

所以我就在我们公司的群里问了问,果真,有位同事改bug的时候,想要删除他的一个gesture,所以他的代码是 [self.superview removeGestureRecognizer:_tap]; _tap 是那个gesture的变量;
这句代码就造成了,由于在运行过程中,不知道 self.superview 是哪个,就会意外的把所有的gesture都移除掉了,主要是 _tap 变量还是 nil

所以我的解决方案就是:
- 在 remove 手势时,一定是在 [self removeFromSuperview]; 之前

如果读者没有发现这样的代码,那就要检查,你app的 keywindowrootViewController 下的 userInteractionEnabled 是否为YES;还要检查它们的手势是否启用/可用。

UIApplication(BTGMethodSwizzler) btg_swizzleSendEvent: 崩溃相关推荐

  1. 关于xcode7编译旧项目崩溃-[UIApplication _runWithMainScene:transitionContext:completion:]

    崩溃原因 crash: Assertion failure in  -[UIApplication _runWithMainScene:transitionContext:completion:],  ...

  2. ios 打印 详细错误日志_关于Xcode不能打印崩溃日志

    最近在调试应用的时候发现了一个问题, 就是Xcode的控制台不打印Crash日志. 几经周折终于发现了问题. 因为不能打印日志, 开始以为是我没有设置 NSSetUncaughtExceptionHa ...

  3. 百度地图经常崩溃的问题

    2019独角兽企业重金招聘Python工程师标准>>> title: 百度地图经常崩溃的问题 date: 2015-11-14 11:23:45 categories: IOS ta ...

  4. 属性为nil的时候测试是否crash  nil是不会崩溃的

    @interface AppDelegate () //属性为nil的时候测试是否crash  nil是不会崩溃的 @property AppDelegate* share; @end @implem ...

  5. iOS 中捕获程序崩溃日志

    iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软件都选择的方法.下面就介绍如何在iOS中实现: 1. 在程序启动时加上一个异常捕获监听,用来处理程序崩溃时 ...

  6. iOS进阶 - iOS如何监控崩溃

    转载自:https://blog.csdn.net/qxuewei/article/details/90760508 iOS进阶 - iOS如何监控崩溃 几种常见的崩溃 数组越界:给数组添加 nil: ...

  7. 【iOS篇】从容面对App崩溃

    有代码的地方,就可能会有崩溃.定位崩溃问题的方法:最直接的,通过重现的步骤去调适:但是,有时候测试无法确定崩溃的步骤,或者崩溃是线上用户发生的,这些情况下,我们仍然可以通过崩溃日志,知道崩溃的原因和崩 ...

  8. iOS 崩溃日志在线符号化实践

    1. 什么是符号化? 在日常开发中,应用难免会发生崩溃.通常,我们直接从用户导出来的崩溃日志都是未符号化或者部分符号化的,都是一堆十六进制内存地址的集合,可读性较差.未符号化或者部分符号化的崩溃日志对 ...

  9. iOS应用崩溃日志分析 iOS应用崩溃日志揭秘

    转自:http://www.raywenderlich.com/zh-hans/30818/ios%E5%BA%94%E7%94%A8%E5%B4%A9%E6%BA%83%E6%97%A5%E5%BF ...

最新文章

  1. mysql主备数据库配置_MySQL双主互备配置
  2. 分类模型的性能评估——以SAS Logistic回归为例(3): Lift和Gain
  3. C语言 | 使用牛顿法求非线性方程的一个实根(附代码)
  4. optfine的jar文件打不开_JAVA版1.14.4 装了最新版的optifine游戏打不开了 求助大佬们...
  5. HDU - 6333 Problem B. Harvest of Apples(莫队变形+思维+组合数学,好题)
  6. hive mysql编码问题_Hive中文乱码 生产环境问题解决
  7. 使用“using” 的 “Cursor”
  8. 【经典回放】JavaScript学习详细干货笔记之(二)
  9. ValueError: too many values to unpack
  10. 不用GAN、VAE,谷歌发明视频生成的扩散模型,实现新SOTA
  11. windows下nodejs开发环境的安装与配置
  12. JavaScript问题01 js代码放在header和body的区别
  13. 笔记本计算机在桌面显示器,笔记本连接显示器
  14. [转载] 网络硬件发展史
  15. Neutron的Web Server启动过程中的关键参数
  16. USB 驱动程序(转贴)
  17. corrupted double-linked list: 0x086a6c50(内存问题)
  18. 微服务电商实战(十一)搭建vue项目对接注册登陆接口,解决跨域问题,使用七牛云实现头像上传
  19. word文档中英文单词之间空格间距过大问题如何解决
  20. Unity最简单的消息中心

热门文章

  1. Hadoop应用实验 Linux环境配置
  2. 云桌面和云计算之间的区别是什么
  3. [竞赛图判定定理]兰道定理(Landau's Theorem)介绍及其一种证明
  4. 文本文件与二进制文件区别
  5. 极客时间--数据结构与算法之美
  6. QCon旧金山2016大会,议题发布及研讨会一瞥
  7. 公司旅游--金华武义二日游
  8. 阿里云部署Tiny Tiny RSS踩坑笔记
  9. python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆
  10. Python编程输出三角形的边长及面积