简体   繁体   English

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

[英]OSX: How to maintain compatibility with older OSX/SDK

I have a piece of code like this: 我有一段这样的代码:

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

AVCaptureScreenInput.capturesCursor is only available in 10.8+. AVCaptureScreenInput.capturesCursor仅在10.8以上版本中可用。 My app supports 10.7+. 我的应用程序支持10.7+。

How do I maintain compatibility? 如何保持兼容性? Should I remove the call completely? 我应该完全删除通话吗? Check the OS version at runtime? 在运行时检查操作系统版本?

You should check if the property exists in runtime. 您应该检查该属性在运行时是否存在。

This code should do the trick: 这段代码可以解决这个问题:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM