【问题标题】:ifdef for specific Xcode versions?ifdef 用于特定的 Xcode 版本?
【发布时间】:2018-02-13 00:53:08
【问题描述】:

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

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

【问题讨论】:

  • 为什么使用 Xcode 版本?似乎更好的检查是(a)您正在构建的 Swift 版本或(b)正在运行的操作系统版本。

标签: swift xcode conditional-compilation


【解决方案1】:

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

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

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

如果您发现了与 Xcode 相关的错误,请将其提交到 Apple 的错误报告网站 here

【讨论】:

  • 确实,Xcode 8 中最新可用的 Swift 版本是 3,所以这是一个有效的检查
猜你喜欢
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-15
相关资源
最近更新 更多