在 Swift 2.0 中检查权限

Checking permissions in Swift 2.0

无论我在哪里添加代码来检查 camera/mic/photos 之类的权限,弹出确认总是会终止我的应用程序或向我发送一些视图控制器。

举例如下

当我有一个处理权限的页面时,我几乎没有视图控制器(通过注册过程的一部分)。用户点击一个按钮来处理使用以下代码的相机权限。

if AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo) !=  AVAuthorizationStatus.Authorized {
        AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: { (granted :Bool) -> Void in
            if granted == true {
                // do something
            } else {
               // determine whether not determined, denied etc and do something else
            }
        });
    }

然而,一旦 iOS 确认弹出,它就会将应用程序抛回 2 个视图控制器。在其他情况下(例如在 viewDidLoad 上)权限请求会在做出选择后立即终止应用程序。

知道我在我的设置中遗漏了什么或如何防止这种行为吗?

谢谢。

我认为你误解了我的评论,我的意思是

if AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo) !=  AVAuthorizationStatus.Authorized { // here you are checking if it's not authorized i..e  it's denied, NotDetermined or Restricted
   ....
    }
 else if if AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo) ==  AVAuthorizationStatus.Authorized
// do the something in case it's autorized

我在这里列出密钥 -

     <key>NSPhotoLibraryUsageDescription</key>
     <string>This app requires access to the photo library.</string>
     <key>NSCameraUsageDescription</key>
     <string>This app requires access to the camera.</string>