我想使用 Xcode 9 将 iOS 11 代码添加到我的项目中,同时保留使用仅支持 iOS 10 的 Xcode 8 编译项目的选项。
在 Objective-C 中,我可以通过使用预处理器指令来检查是否__IPHONE_11_0
被定义为。如果我使用早于 iOS 11 的 Base SDK 进行编译,这将隐藏代码。如下所示:
#ifdef __IPHONE_11_0
if (@available(iOS 11.0, *)) {
self.navigationController.navigationBar.prefersLargeTitles = YES;
}
#endif
有没有办法在 Swift 中做到这一点?
if #available(iOS 11.0, *)
不起作用,因为这是运行时检查。
iOS 11 SDK 附带 Swift 3.2(或 Swift 4),因此您可以使用 Swift 版本检查来完成相同的操作:
#if swift(>=3.2)
if #available(iOS 11.0, *) {
…
}
#endif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)