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