繁体   English   中英

尝试删除叠加层时相机捕获崩溃

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM