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的调试器,并且在"设置"屏幕中更改"摄像机"权限工作,虽然它似乎重新启动了我的应用程序(应用程序从第一个屏幕重新开始,而不是在我停止之前从"设置"中更改权限).这是正常的吗?如何确保在发布版本中不会发生此错误?