[英]Camera capture crash when trying to remove overlay
我在声明:
let image = UIImagePickerController()
然后设置:
image.delegate = self
image.sourceType = .Camera
image.cameraDevice = .Front
image.allowsEditing = false
然后将叠加层添加到相机:
let overlay = self.storyboard?.instantiateViewControllerWithIdentifier("OverlayVC")
image.cameraOverlayView = overlay?.view
然后展示相机:
self.presentViewController(image, animated: true, completion: nil)
然后我拍照,这时我的观察者踢了进来:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "removeOverlay", name: "_UIImagePickerControllerUserDidCaptureItem", object: nil)
并尝试执行:
func removeOverlay() {
image.cameraOverlayView = nil
}
现在,一切正常,大部分时间都删除了重叠式广告,但是在随机情况下,应用崩溃了:
由于未捕获的异常“ NSInvalidArgumentException”而终止应用程序,原因:“源类型必须为UIImagePickerControllerSourceTypeCamera”
我的猜测是,这与执行我的remove overlay命令的时间有关,但不知道如何从此处进行。 有见识吗?
通过添加检查来修复它:
if image.cameraOverlayView != nil {
image.cameraOverlayView = nil
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.