【发布时间】:2017-11-09 11:55:27
【问题描述】:
我想使用 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, *) 不起作用,因为这是运行时检查。
【问题讨论】:
标签: swift xcode macros versioning