为什么Swift版本与XCode版本如此紧密地结合在一起?

时间:2018-09-20 01:05:45

标签: swift xcode

很抱歉,是否已经有人问过这个问题,但由于它对我所有的Swift应用程序都产生了巨大的依赖性,因此想详细了解。

在大多数Swift版本更新中,都有与之紧密相关的Xcode版本。

例如,如果我使用Xcode 9.2使用Swift 4.0.3创建一个框架,那么它就不能用Xcode 9.3 / 9.4或即将推出的Xcode 10进行编译,据我了解,这是Swift本身在发展的,并且没有编译器可以提供前向兼容性。 / p>

但是,我想知道你们中的任何人都以不同的方式对待这个问题,但是我完全缺少一些捷径。

2 个答案:

答案 0 :(得分:2)

在到达Swift 5之后,这种情况会变得好很多。在那之前,您所能做的就是继续使用它,每次更新到Swift的新版本时都会更新。两个建议:

  • 在最近的Swift版本中,您的生活变得更轻松了,因为您可以将条件编译与#if和类似条件swift(>=4.2)或(从Swift 4.2开始)一起使用compiler(>=4.2) ,这样您就可以根据我们所编译的Swift版本使用不同的方式进行交谈。

  • 语言版本是每个目标的构建设置。因此耦合不是完全紧密。如果您使用的是旧代码,则可以(在某种程度上)继续使用该语言的旧版本。此屏幕快照来自Xcode 10,显示您可以编译Swift 4.0代码:

    enter image description here

答案 1 :(得分:0)

这不一定是各种 answer ,但是您确实可以使用更新的Swift版本(有关更多详细信息,请参见this答案)。我的方法一直是通过Mac App Store或Developer Downloads来了解最新的Xcode版本,并运行我的项目的副本以确定即将发生的更改。

Swift早期版本(1.0-> 2.0)之间的更改令人难以置信。从Swift 4.0.3-> 4.1(甚至4.2)开始所做的更改并不那么激烈,尽管对于该语言的开发仍然至关重要,但是Xcode现在在建议如何更新代码方面做得更好。

简而言之,并不一定有一条捷径(我知道),但是您可以通过不断地评估新Xcode版本中的当前代码并确定如何以及何时进行此迁移来发现自己处于更好的位置到较新的语言。

相关问题