@djromeroが言ったように、を使用することで解決策がありますAVFoundation
(ただし、代わりにではありません 。通知を返すために使用するだけです)。UIImagePickerController
AVFoundation
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(cameraIsReady:)
name:AVCaptureSessionDidStartRunningNotification object:nil];
そして、カメラの準備ができたら、通知を受け取ります。
- (void)cameraIsReady:(NSNotification *)notification
{
NSLog(@"Camera is ready...");
// Whatever
}
takePicture
プレゼンテーションの後UIImagePickerController
で(「カメラの準備ができていません」というメッセージが表示された場合)、通知コールバック内で呼び出してテストしたところ、魅力のように機能しました。
補足:
[camera isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]
Yes
使用可能なカメラデバイスがあることを確認するだけなので、常に戻ります。実際のところ、Appleは、コントローラを初期化して提示する前に、これが返さYes
れることと、nil以外のデリゲート(dismiss
標準インターフェイスを介してピッカーにアクセスする方法を提供するため)があることを常に確認する必要があることをお勧めします。