例如,在macOS 10.10之后不赞成使用某些可可api,而在macOS 10.10之后引入了新的API。 我的问题是我的应用程序是否需要在macOS 10.8和更高版本(10.9,10.10,10.11,10.12)上运行,因此可以使用其中的更高版本。 我对吗? 如果是这样,我该怎么办?
我能为此做什么?
在技术级别上,您测试API的存在性并相应地抽象分支:
if (10.10 API available)
{
// use 10.10 API
}
else
{
// use earlier API or handle not supporting feature
}
在Objective-C中,Apple建议通过测试特定方法(使用respondsToSelector:
或类型(使用弱链接)来测试可用性。 您还可以测试特定的框架(推荐)或OS版本(Apple最不喜欢的,程序员经常使用的...)。 如果收到弃用警告,但由于测试知道代码正常,则可以使用#pragma
禁止显示警告。
Apple在Swift中提供了针对OS系列(macOS,iOS等)和版本( #available
)的测试。
无论您使用哪种语言来构建您要支持的最新SDK。
显然,在许多更改上支持单个代码库可能会变得有些复杂和/或混乱,处理这是一个业务决策。
HTH