UIImagePickerController强制触摸崩溃?

在iOS 9中,如果我对所呈现的图像进行强制触摸,所有的UIImagePickerControllers现在都会崩溃。 错误信息是:

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

我想这是一个苹果的错误,但有任何人的工作?

这里有一个解决方法: https ://gist.github.com/nolanw/bd0a8997632fe92a9f83(警告:在私人类中调用一个方法,这可能会使你感到不安)。 将这些文件粘贴到项目中,然后从某处调用MSDPreventImagePickerCrashOn3DTouch (例如-applicationDidFinishLaunching:… )。

问题似乎是一个名为PUPhotosGridViewController的私有类在其超类中调用UIViewControllerPreviewing方法,该方法不实现该方法。 解决方法是调用有问题的方法,并尝试调用原始实现,但是会吞下exception,所以我们不会崩溃。 希望通过这样做,如果/当它被修复,那么解决方法不会影响该修复。

答案不清楚的方式来解决issuse。 你可以通过使用私有API来从苹果获得拒绝。

PUPhotoGridViewController是一个简单的UICollectionViewController,您可以为未实现的方法编写扩展。

 extension UICollectionViewController: UIViewControllerPreviewingDelegate { public func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { return nil; } public func previewingContext(previewingContext: UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController) { } } 

苹果不幸的是, 你只需要等待一个修复。 https://forums.developer.apple.com/thread/21932