关于可可api兼容性

时间:2017-06-02 13:16:01

标签: api cocoa compatibility

例如,某些api of cocoa在macOS 10.10之后被弃用,而新的api在macOS 10.10之后被引入。我的问题是,如果我的应用程序需要在macOS 10.8及更高版本(10.9,10.10,10.11,10.12)上运行,那么我可以使用它们更直接。我对吗?如果是这样,我能为此做些什么?

1 个答案:

答案 0 :(得分:0)

  

我能为此做些什么?

在技术层面,您可以抽象地测试API的存在和分支:

if (10.10 API available)
{
   // use 10.10 API
}
else
{
   // use earlier API or handle not supporting feature
}

在Objective-C中,Apple建议通过测试特定方法(使用respondsToSelector:)或键入(使用弱链接)来测试可用性;您还可以测试特定框架(推荐)或操作系统版本(Apple最不喜欢的,经常被程序员使用......)。如果您收到弃用警告,但由于测试后您知道代码是正常的,您可以使用#pragma来本地抑制警告。

在Swift Apple中提供了OS系列(macOS,iOS等)和版本(#available)的测试。

无论您使用哪种语言构建您希望支持的最新SDK。

显然,在许多变更中支持单个代码库可能会变得有些复杂和/或混乱,处理这个是业务决策。

HTH