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