博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于UIImagePickerController使用3DTouch的Crash问题
阅读量:5771 次
发布时间:2019-06-18

本文共 1028 字,大约阅读时间需要 3 分钟。

最近公司项目APP报一个崩溃问题: [^sample_footnote]:这个BUG在iOS9.3系统上苹果已经默默的修复 ###一.问题分析

+[NSObject previewingContext:viewControllerForLocation:]: unrecognized selector sent to class 0x...... 复制代码

看方法得知previewingContext:viewControllerForLocation:这个方法是在iOS推出3DTouch功能之后才有的API,可是公司的APP暂时还没有集成3DTouch功能,这就奇怪了.万般google之后终于找到了问题所在: 导致这个crash的原因是当用户从照片库中选择图片的时候使用3DTouch功能预览图片的时候导致的.这应该是iOS9的SDK一个BUG. http://stackoverflow.com/questions/33331758/uiimagepickercontroller-crashing-on-force-touch 苹果官网和SOF有对此问题的描述. 目前来说触发的环境为:

硬件: iPhone6S和iPhone6S Plus 软件: iOS9之后的版本

###二.解决方案 既然定位到了问题解决起来就容易了.我们可以利用Runtime替换掉系统的这个方法,不做任何操作就可以了.网上有个工具https://gist.github.com/nolanw/bd0a8997632fe92a9f83 完美解决了这个问题.实现原理就是利用Runtime实现方法替换.链接可能打不开(翻墙吧),因此我也把这个库上传到了此处https://github.com/Herb-Sun/MSDPreventImagePickerCrashOn3DTouch 方便大家下载. ###三.使用方法 将这个类拖到工程中去,然后在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions复制代码

方法中调用MSDPreventImagePickerCrashOn3DTouch()即可.

转载于:https://juejin.im/post/5aed54866fb9a07a9c041992

你可能感兴趣的文章
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
如何用UPA优化性能?先读懂这份报告!
查看>>
这些Java面试题必须会-----鲁迅
查看>>
Linux 常用命令
查看>>
NodeJS 工程师必备的 8 个工具
查看>>
CSS盒模型
查看>>
ng2路由延时加载模块
查看>>
使用GitHub的十个最佳实践
查看>>
全面了解大数据“三驾马车”的开源实现
查看>>
脱离“体验”和“安全”谈盈利的游戏运营 都是耍流氓
查看>>
慎用!BLEU评价NLP文本输出质量存在严重问题
查看>>
Facebook Sonar:一款可视化及交互式移动应用调试工具
查看>>
基于干净语言和好奇心的敏捷指导
查看>>
Node.js 2017企业用户调查结果发布
查看>>
“软”苹果水逆的一周:杂志服务崩溃,新机型遭泄露,芯片首架离职
查看>>
JAVA的优势就是劣势啊!
查看>>
IEEE802.11数据帧在Linux上的抓取
查看>>