「カメラロールを使用します」やらなんやらのプライバシーのアラートを一度に次々出す
毎回調べるの面倒だからまとめた
すでに出したことあるやつならスキップして次のアラートを出す
func checkAuth(_ completion:(()->())? = nil){
//カメラロール
func checkAuthCameraroll(_ completion:(()->())?){
if PHPhotoLibrary.authorizationStatus() != .authorized {
PHPhotoLibrary.requestAuthorization({ (status) in
completion?()
})
}
else{
completion?()
}
}
//ビデオ
func checkAuthVideo(_ completion:(()->())?){
if AVCaptureDevice.authorizationStatus(for: AVMediaType.video) != .authorized {
AVCaptureDevice.requestAccess(for: AVMediaType.video, completionHandler: { (isSuccess) in
completion?()
})
}
else{
completion?()
}
}
//オーディオ
func checkAuthAudio(_ completion:(()->())?){
if AVCaptureDevice.authorizationStatus(for: AVMediaType.audio) != .authorized {
AVCaptureDevice.requestAccess(for: AVMediaType.audio, completionHandler: { (isSuccess) in
completion?()
})
}
else{
completion?()
}
}
checkAuthCameraroll {
checkAuthVideo {
checkAuthAudio {
completion?()
}
}
}
}