zoukankan      html  css  js  c++  java
  • 使用UIImagePickerController时3DTouch引起Crash

    一、crash的场景

    程序中用到UIImagePickerController时,如果在IPhone6S上运行APP,当forceTouch 一个图片时程序会crash,并附带如下crash message:

    * Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘+[NSObject previewingContext:viewControllerForLocation:]: unrecognized selector sent to class 0x19f678020’

    这种Crash的原因很可能是苹果自身SDK的一个bug,这点我们在苹果官网上可以了解一些。https://forums.developer.apple.com/thread/21932 因为只要是利用了个UIImagePickerController这个控制器,当我们forceTouch那个选择图片的view的时候,就会crash。

    二、问题的解决

    我们可以从 http://download.csdn.net/detail/smiling8866/9367050 下载一下这个工具类,然后在- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions方法中调用MSDPreventImagePickerCrashOn3DTouch();方法,就可以解决以上Crash.

    三、注意事项

    1. 在程序中引入以上工具类时,肯能会出现编译不过去报arm64错误,很可能是工具文件的后缀名不对。因为工具类中的代码大都是c++的,所以应该把后缀名改成 .mm;
    2. 在编译的时候,一定要把程序中所有的断点都去掉,不然代码总会卡在try catch那段异常处理的代码中。
    3. 注意,3DTouch功能,只有在Iphone6S及其以后的版本支持,XCode要用7.0及其以后的版本,所以利用低版本的XCode是编译不过的,也没有任何意义。

    多谢大神分享 备用

  • 相关阅读:
    JMeter递增加压总结
    JMeter跨线程传参总结
    JMeter+Grafana+Influxdb可视化性能监控平台搭建总结
    MONyog入门总结
    MongoDB导出/导入操作
    测试工作中用到的MongoDB命令
    Go单元测试与报告
    Postwoman教程
    测试工作中用到的Redis命令
    redis-dump教程
  • 原文地址:https://www.cnblogs.com/isItOk/p/5164365.html
Copyright © 2011-2022 走看看