我有一段这样的代码:

        AVCaptureScreenInput *input = [[AVCaptureScreenInput alloc] initWithDisplayID:screen.displayID];
        input.capturesCursor = NO;
        input.capturesMouseClicks = NO;


AVCaptureScreenInput.capturesCursor仅在10.8以上版本中可用。我的应用程序支持10.7+。

如何保持兼容性?我应该完全删除通话吗?在运行时检查操作系统版本?

最佳答案

您应该检查该属性在运行时是否存在。

这段代码可以解决这个问题:

AVCaptureScreenInput *input = [[AVCaptureScreenInput alloc] initWithDisplayID:screen.displayID];
if ([input respondsToSelector:@selector(setCapturesCursor:)]) {
    input.capturesCursor = NO;
}
input.capturesMouseClicks = NO;

10-04 16:20