ifdef 用于特定的 Xcode 版本?

ifdef for specific Xcode versions?

提问人:Mike Nathas 提问时间:9/5/2017 更新时间:9/5/2017 访问量:1430

问:

我目前正在将我的一些代码转换为在 Xcode 9 中编译,并偶然发现了一些不同的行为,这迫使我仅在 Xcode 9 中使用一些代码,而仅在 Xcode 8 中使用一些代码。 是否有某种 ifdef,以便我可以根据使用的 Xcode 版本重定向代码?

任何帮助都表示赞赏。 谢谢!

Swift Xcode 条件编译

评论

0赞 9/5/2017
为什么要使用 Xcode 版本?似乎更好的检查是 (a) 您正在针对哪个版本的 Swift 构建,或者 (b) 正在运行哪个操作系统版本。

答:

5赞 Vatsal 9/5/2017 #1

没有用于 Xcode 版本控制的条件编译预处理器宏。目前,这是你能做的最好的事情:

#if swift(>=3.2)
    // Xcode 9 
#else
    // Xcode 8
#endif

由于 Swift 3.2 只能通过 Xcode 9 或更高版本使用,因此这应该可以满足您的实际需求。

如果您发现了与 Xcode 相关的错误,请在此处的 Apple Bug Reporter 网站上提交。

评论

0赞 Mike Nathas 9/5/2017
事实上,Xcode 8 中最新的 Swift 版本是 3,所以这是一个有效的检查