canSetSessionPreset: AVCaptureSessionPreset1920x1080 вызывает «плохой доступ» в iOS4 - PullRequest
0 голосов
/ 12 декабря 2011

Вот мой код:

if( [self.captureSession canSetSessionPreset:AVCaptureSessionPreset1920x1080] == YES )
    {
    [self.captureSession setSessionPreset:AVCaptureSessionPreset1920x1080];
    self.currentPreset = GMCVideoCaptureRecordingPresetFullHD;
    }

На iOS4 выполнение останавливается в первой строке с ошибкой «Bad access».На iOS5 работает нормально.

Как правильно проверить совместимость здесь?

1 Ответ

4 голосов
/ 12 декабря 2011

AVCaptureSessionPreset1920x1080 является NSString *const. Вы можете просто проверить, что его адрес не NULL. Так вот так:

if( &AVCaptureSessionPreset1920x1080 != NULL && [self.captureSession canSetSessionPreset:AVCaptureSessionPreset1920x1080] == YES )
{
    [self.captureSession setSessionPreset:AVCaptureSessionPreset1920x1080];
    self.currentPreset = GMCVideoCaptureRecordingPresetFullHD;
}

Это должно делать то, что вы хотите. Обратите внимание, что вы не будете устанавливать предустановку в else, чтобы справиться со случаем, когда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...