我想使用 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
关于swift - Objective-C 的 "#ifdef __IPHONE_11_0"的 Swift 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44424337/