Air*_*ène 11 uiimagepickercontroller ios ios9
对于iOS 9,UIImagePickerControllers如果我对所呈现的图像进行强制触摸,我的所有现在都会崩溃.错误信息是:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSObject previewingContext:viewControllerForLocation:]: unrecognized selector sent to class 0x1a0752020'
Run Code Online (Sandbox Code Playgroud)
我想这是一个Apple的bug,但有人可以解决吗?
小智 13
答案不是解决问题的明确方法.您可以使用私有API从苹果获得拒绝.
PUPhotoGridViewController是一个简单的UICollectionViewController,您可以为未实现的方法编写扩展.
extension UICollectionViewController: UIViewControllerPreviewingDelegate {
public func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
return nil
}
public func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个解决方法:https://gist.github.com/nolanw/bd0a8997632fe92a9f83(警告:在私有类上调用一个方法,这可能会让你感到不安).将这些文件粘贴到项目中,然后MSDPreventImagePickerCrashOn3DTouch从某个地方调用(例如-applicationDidFinishLaunching:…).
问题似乎是名为的私有类在其超类上PUPhotosGridViewController调用该UIViewControllerPreviewing方法,该类不实现该方法.解决方法调整了违规方法并尝试调用原始实现,但它吞下了异常,因此我们不会崩溃.希望通过这种方式,如果/当它得到修复,那么解决方法不会影响该修复.
| 归档时间: |
|
| 查看次数: |
2079 次 |
| 最近记录: |