canSetSessionPreset:AVCaptureSessionPreset1920x1080导致iOS4中的“访问不良”

时间:2011-12-12 12:02:28

标签: ios ios4 ios5

这是我的代码:

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

在iOS4上执行在第一行停止并出现“错误访问”错误。 在iOS5上它工作正常。

如何在此处正确检查兼容性?

1 个答案:

答案 0 :(得分:4)

AVCaptureSessionPreset1920x1080NSString *const。您只需检查其地址不是NULL即可。所以这样:

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

那应该做你想要的。请注意,您不会在<上设置预设。 iOS 5虽然如此,你可能会想要else来处理它的情况<无法设置iOS 5或1920x1080预设。