Ben*_*ero 15 versioning xcode choice swift
我在Swift中开发应用程序为生。我喜欢这种语言,并且会尽可能地遵循它。但是,无论是事实还是事实,无论是我蒙蔽了我的视线,还是苹果公司对此保持沉默,都是如此。
今天,我发现Swift 3.3和3.4存在。我当时假设3.2是3的最新版本,可用于迁移到4、4.2和5。这种误解主要是由于Swift.org,官方Git存储库和Xcode发行说明没有牛逼何况他们在所有。
因此,我认为它们也是过渡性的,但是我不知道它们出现在什么IDE或编译器中,或者附带什么警告。下表总结了我的知识:
下表已过时,仅供参考,因此该问题很有意义。我在下面的答案中发布了此表的更新版本。
![]()
紫色空间中出现了什么?专门用于3.3和3.4行,但是如果您知道其他行,那也将有所帮助!
权威消息来源也很棒。
对主要问题的可能答案如下:
我认为没有其他可能性。不过,请让我知道我是否不在基地。
Ben*_*ero 28
由于我一直在收集数据并进行测试,因此我将在此答案中将结果作为更新的图表发布:
自从我上次这样做以来,我发现事实上,新版本的Xcode不支持从所有旧版本的Swift迁移。我确实明确测试过Xcodes 10.2至11不支持Swift 3.x和更早版本,因此我将它们涂成白色。我还没有时间测试通过10.1的Xcode 8.3,但是我怀疑它们将迁移3.x,但不会迁移2.x或更早的版本。这就是为什么现在有一个紫色大块的原因。
这不是填满图表中所有未知空间的完整答案,但是无论如何,我可以填写一些有用的内容...
当Swift 4开发进行时(并在WWDC17上首次正式宣布),编译器的版本号从该语言的版本中派生出来。(这很像说ANSI C标准与clang和GCC编译器具有不同的版本控制。)
语言版本号跟踪源兼容性,包括语言定义本身,标准库的源兼容性,以及Apple平台SDK在Swift中的显示方式。如果您具有“ Swift 3”代码,则在使用该-swift-version 3选项时,应该能够使用Swift编译器的版本3或任何更高版本的编译器进行编译。
但是“ Swift 3”(语言版本)也不是固定不变的。随着Swift的不断发展,对语言,标准库和SDK的更改纯粹是可用于Swift 3的。因此,如果您拥有Swift 3代码库并开始使用较新的编译器,则可以选择是否转换所有内容。到Swift 4,开始使用新的编译器功能,或保持与旧版Swift 3编译器的兼容性。
这意味着存在编译器版本到可能的语言兼容版本的映射:
尚未发布Swift 5(语言或编译器)版本,但发生这种情况时,它很可能允许以-swift-version 4模式构建,从而创建“ Swift 4.3”语言版本。(假设将来的Swift 4.x版本不会首先考虑这些数字。)
我不知道此答案的单一来源,但您可以将其汇总为:
对图表中过去的部分内容的一些较小的更正:
Xcode 8包括两个单独的编译器版本,而不是一个带有-swift-version开关的编译器。Xcode 8.3停止包括Swift 2.3编译器,而Swift 3.1成为该版本中唯一受支持的Swift语言。
Xcode 7 / Swift 2从不支持仅编译Swift 1.x代码。Xcode 7.2及更高版本(直到当前的Xcode 10 beta)仍包含“转换为当前的Swift语法”迁移器,理论上该迁移器支持从任何较早版本的Swift迁移。
Xcode 6.0至6.2.x支持在OS X Mavericks(10.9)上运行Xcode。Xcode 6.3是第一个需要OS X Yosemite(10.10)的人。
其他资源:旧的Xcode下载。
我不确定此标签的适用程度...
在Xcode 8.x包含Swift 2.3编译器的时期,它完全支持构建应用程序并提交到App Store。您可能会说,当时它还是“受挫”,因为苹果公司表示不会坚持下去,而Swift 3.0将是后来编译器向后兼容的第一个语言版本。
Xcode 9完全/完全支持Swift 3.2-与Swift 2.3-> 3.0不同,Apple或Swift开源项目没有消息“先删除此版本,然后再将其删除”。明确存在Swift语言版本3.2、3.3和3.4,原因是允许开发人员维护“ Swift 3”代码库,同时获得较新的编译器和IDE版本的好处。
| 归档时间: |
|
| 查看次数: |
10952 次 |
| 最近记录: |