我以在Swift 开发应用为生.我喜欢这种语言,并尽可能地密切关注它.然而,尽管如此,某些事实还是漏洞百出,无论是因为我的盲目,还是因为苹果对这些事实保持沉默.

今天,我发现Swift 3.3和3.4已经存在.我假设3.2是3的最后一个版本,用于迁移到4、4.2和5.这种误解主要是因为Swift.orgthe official Git repoXcode Release Notes没有提到它们at all.

所以,我假设它们也是过渡的,但我不知道它们出现在什么IDE或编译器中,或者它们附带了什么警告.下表总结了我的知识:

The below table is outdated, provided for context so the question makes sense. I've posted an updated version of this table in an answer below.

A complex table with many versions of Swift and Xcode as the axes, and the support versions as the content

What goes in the purple spaces?专门针对3.3和3.4行,但如果你知道其他行,那也会有帮助!

权威消息来源也会很棒.


主要问题的可能答案如下:

  1. Swift 3.3仅在Xcode 9.3测试版中发布,从未公开;Swift 3.4只出现在Xcode 9.3-9.4中
  2. Swift 3.3仅在Xcode 9.3中受支持;在Xcode 9.3.1和9.4中支持Swift 3.4
  3. 在Xcode 9.3和9.3.1中支持Swift 3.3;Swift 3.4仅在Xcode 9.4中受支持
  4. Swift 3.3在Xcode 9.3至9.4版本中得到支持;Swift 3.4仅在Xcode 10测试版中受支持.

我不知道还有另一种可能性.不过,如果我离开基地,一定要告诉我.

推荐答案

由于我一直在收集数据并进行测试,我将在下面的答案中以最新图表的形式发布我的结果:

A chart depicting the different versions of Swift as compared to their respective versions of Xcode. Last updated 2020-02-25

不久前,我发现新版本的Xcode实际上不支持从all个旧版本的Swiftmigrations.我明确测试了Xcode 10.2到11不支持Swift 3.x和更早,所以我把它们涂成了白色.我还没有时间测试Xcode 8.3到10.1,但我怀疑他们会迁移Xcode 3.x,但不是2.x或更早;that's why there's a big "Unknown" block at the top


来源

Swift相关问答推荐

Swift Tree实现中的弱var

为什么我的引用类型对象在初始化后有3个强引用?

SwiftUI—如何识别单词并获取视觉中的位置

在Swift中,将秒设置为0也等于将1添加到分钟

使用 @resultBuilder 的通用 buildList 函数

为什么变量不存储在 Swift 的过程数据区中

UIBezierPath() 和 DragGesture:连接点创建角而不是曲线

并发执行代码中捕获的 var 的变异

Swift 根据总值将数组拆分为块

如何在 SwiftUI 中获取视图的位置

如何在 SwiftUI 中将图像传递到 2 个视图

SwiftUI 视图的默认成员初始化器 VS 自定义初始化器

仅在 Swift 中创建 Setter

在运行时访问 UIView 宽度

FirebaseStorage:如何删除目录

Swift 2 中的新 @convention(c):我该如何使用它?

try 在解除分配时加载视图控制器的视图... UIAlertController

TabView 在切换选项卡时重置导航堆栈

使用 JSONEncoder 对类型为 Codable 的变量进行编码

快速延迟加载属性