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是编译不过的,也没有任何意义。

    多谢大神分享 备用

  • 相关阅读:
    buuctf-misc 一叶障目
    攻防世界-web ics-05
    攻防世界-web ics-06
    攻防世界-web NewsCenter
    攻防世界-web upload1
    攻防世界-web unserialize3
    攻防世界-web PHP2
    攻防世界-web2
    gitlab常用命令
    javascript编程风格
  • 原文地址:https://www.cnblogs.com/isItOk/p/5164365.html
Copyright © 2011-2022 走看看