UIApplication(BTGMethodSwizzler) btg_swizzleSendEvent: 崩溃
先描述本人遇到的问题:
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的 keywindow
和rootViewController
下的 userInteractionEnabled
是否为YES;还要检查它们的手势是否启用/可用。
UIApplication(BTGMethodSwizzler) btg_swizzleSendEvent: 崩溃相关推荐
- 关于xcode7编译旧项目崩溃-[UIApplication _runWithMainScene:transitionContext:completion:]
崩溃原因 crash: Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], ...
- ios 打印 详细错误日志_关于Xcode不能打印崩溃日志
最近在调试应用的时候发现了一个问题, 就是Xcode的控制台不打印Crash日志. 几经周折终于发现了问题. 因为不能打印日志, 开始以为是我没有设置 NSSetUncaughtExceptionHa ...
- 百度地图经常崩溃的问题
2019独角兽企业重金招聘Python工程师标准>>> title: 百度地图经常崩溃的问题 date: 2015-11-14 11:23:45 categories: IOS ta ...
- 属性为nil的时候测试是否crash nil是不会崩溃的
@interface AppDelegate () //属性为nil的时候测试是否crash nil是不会崩溃的 @property AppDelegate* share; @end @implem ...
- iOS 中捕获程序崩溃日志
iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软件都选择的方法.下面就介绍如何在iOS中实现: 1. 在程序启动时加上一个异常捕获监听,用来处理程序崩溃时 ...
- iOS进阶 - iOS如何监控崩溃
转载自:https://blog.csdn.net/qxuewei/article/details/90760508 iOS进阶 - iOS如何监控崩溃 几种常见的崩溃 数组越界:给数组添加 nil: ...
- 【iOS篇】从容面对App崩溃
有代码的地方,就可能会有崩溃.定位崩溃问题的方法:最直接的,通过重现的步骤去调适:但是,有时候测试无法确定崩溃的步骤,或者崩溃是线上用户发生的,这些情况下,我们仍然可以通过崩溃日志,知道崩溃的原因和崩 ...
- iOS 崩溃日志在线符号化实践
1. 什么是符号化? 在日常开发中,应用难免会发生崩溃.通常,我们直接从用户导出来的崩溃日志都是未符号化或者部分符号化的,都是一堆十六进制内存地址的集合,可读性较差.未符号化或者部分符号化的崩溃日志对 ...
- 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 ...
最新文章
- mysql主备数据库配置_MySQL双主互备配置
- 分类模型的性能评估——以SAS Logistic回归为例(3): Lift和Gain
- C语言 | 使用牛顿法求非线性方程的一个实根(附代码)
- optfine的jar文件打不开_JAVA版1.14.4 装了最新版的optifine游戏打不开了 求助大佬们...
- HDU - 6333 Problem B. Harvest of Apples(莫队变形+思维+组合数学,好题)
- hive mysql编码问题_Hive中文乱码 生产环境问题解决
- 使用“using” 的 “Cursor”
- 【经典回放】JavaScript学习详细干货笔记之(二)
- ValueError: too many values to unpack
- 不用GAN、VAE,谷歌发明视频生成的扩散模型,实现新SOTA
- windows下nodejs开发环境的安装与配置
- JavaScript问题01 js代码放在header和body的区别
- 笔记本计算机在桌面显示器,笔记本连接显示器
- [转载] 网络硬件发展史
- Neutron的Web Server启动过程中的关键参数
- USB 驱动程序(转贴)
- corrupted double-linked list: 0x086a6c50(内存问题)
- 微服务电商实战(十一)搭建vue项目对接注册登陆接口,解决跨域问题,使用七牛云实现头像上传
- word文档中英文单词之间空格间距过大问题如何解决
- Unity最简单的消息中心