如何收听相机授权状态的变化?

Mat*_*ros 5 cocoa-touch avfoundation ios swift

我正在编写一个iOS 8应用程序,用户可以从相机拍摄照片.我使用这个代码检查授权状态(这非常简单,我很确定每个人都这样做):

func showCameraImagePicker() {
    let authorizationStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
    switch authorizationStatus {
    case .Authorized:
        // ...
    case .Denied:
        // ...
    case .Restricted:
        // ...            
    case .NotDetermined:
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,它适用于首次运行时的授权状态.但是,如果我转到"设置"应用并更改授权状态,然后返回到应用程序,则执行相同的代码,就好像授权状态未更改一样.

例如,如果我最初允许相机访问,然后转到设置并禁用我的应用程序的相机,然后返回到应用程序,代码.Authorized仍然执行 - 它显示UIImagePickerController但现在有黑屏.当我终止应用程序并再次运行它时,.Denied运行代码.

如何让我的代码听取相机中权限的更改?

UPDATE

这真的很奇怪 - 我也碰巧有这个问题,UIImagePickerController显示相机射击的速度非常慢,而且只有在从Xcode调试时才会发生.我再次运行我的应用程序而没有将其连接到Xcode的调试器,并且在"设置"屏幕中更改"摄像机"权限工作,虽然它似乎重新启动了我的应用程序(应用程序从第一个屏幕重新开始,而不是在我停止之前从"设置"中更改权限).这是正常的吗?如何确保在发布版本中不会发生此错误?