簡體   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