我目前正在将我的一些代码转换为在Xcode 9中编译,偶然发现了一些不同的行为,这些行为迫使我只在Xcode 9中使用某些代码,而在Xcode 8中只使用了一些代码。 是否有某种ifdef所以我可以根据使用的Xcode版本重定向代码?
任何帮助表示赞赏。 谢谢!
答案 0 :(得分:4)
Xcode版本控制没有条件编译预处理器宏。目前,这是你能做的最好的事情:
#if swift(>=3.2)
// Xcode 9
#else
// Xcode 8
#endif
由于Swift 3.2只能通过Xcode 9或更高版本提供,因此这应该可以满足您的实际需求。
如果您发现了与Xcode相关的错误,请在Apple的Bug Reporter网站here上提交。
答案 1 :(得分:0)
您需要验证Xcode版本,而不是Xcode中包含的SDK。例如,Xcode8包含iOS 10.3 SDK。但Xcode9包含iOS 11 SDK。
检查sdk使用解决方案from answer