OSX:如何保持与旧OSX / SDK的兼容性

时间:2015-06-16 19:21:31

标签: objective-c xcode macos cocoa

我有一段这样的代码:

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

AVCaptureScreenInput.capturesCursor仅适用于10.8+。我的应用支持10.7 +。

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

1 个答案:

答案 0 :(得分:4)

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

这段代码可以解决问题:

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