这是我的代码:
if( [self.captureSession canSetSessionPreset:AVCaptureSessionPreset1920x1080] == YES ) { [self.captureSession setSessionPreset:AVCaptureSessionPreset1920x1080]; self.currentPreset = GMCVideoCaptureRecordingPresetFullHD; }
在iOS4上执行在第一行停止并出现“错误访问”错误。 在iOS5上它工作正常。
如何在此处正确检查兼容性?
答案 0 :(得分:4)
AVCaptureSessionPreset1920x1080
是NSString *const
。您只需检查其地址不是NULL
即可。所以这样:
if( &AVCaptureSessionPreset1920x1080 != NULL && [self.captureSession canSetSessionPreset:AVCaptureSessionPreset1920x1080] == YES )
{
[self.captureSession setSessionPreset:AVCaptureSessionPreset1920x1080];
self.currentPreset = GMCVideoCaptureRecordingPresetFullHD;
}
那应该做你想要的。请注意,您不会在<上设置预设。 iOS 5虽然如此,你可能会想要else
来处理它的情况<无法设置iOS 5或1920x1080预设。