在Xcode 8中使用Swift 2.2?

72

在Xcode 8中使用Swift 2.2是否可行?

Xcode 8的发布说明中提到:

"Xcode 8支持切换工具链,例如来自swift.org的工具链, 而无需重新启动Xcode。(23135507)"

我一直在尝试在swift.org网站上找到swift 2.2工具链,但未能成功。有人成功配置了Xcode 8以使用swift 2.2吗?


迁移到2.3有什么问题? - kennytm
想尝试使用Xcode 8进行开发,但仍需要我的代码与Xcode 7兼容,以便进行发布构建。 - salabaha
1
Swift 2.2 在 Xcode 7 中和 Swift 2.3 在 Xcode 8 中是兼容的。 - Jim
1
我不会说是兼容的。在Xcode 8中,我的Storyboard上的自动布局约束根本不起作用。我最终将不得不重新设计我的应用程序布局。 - DiggyJohn
@DiggyJohn,我在使用Xcode 8.0时也遇到了自动布局兼容性问题。有没有人知道是否只有重新开始进行自动布局是唯一的解决方案? - Murat Yasar
5个回答

57

如果你想在Xcode 8中继续使用Swift 2,则需要启用Use Legacy Swift Language Version构建设置(SWIFT_VERSION = 2.3)来使用Swift 2.3。


4
@EricD: https://swift.org/blog/swift-2-3/: "Swift 2.2.1和Swift 2.3非常相似,其关键变化与SDK差异有关。" - Martin R
2
我注意到一些项目已被转换为Swift,例如 NSURL。在它们的Swift版本中,它们被标记为可选的,因此我不得不进行强制转换。当我切换回Xcode 7.3时,需要我移除强制转换。 - keji
7
OP要求使用Swift 2.2。您知道在Xcode 8中是否可以使用Swift 2.2吗? - NSTJ
27
大家好,这个问题要求将Swift 2.2代码运行在Xcode 8.0中。为什么要解释Swift 2.3呢?请直接回答问题。 - Murat Yasar
2
这与Swift 2.2无关。我对那个答案投了反对票。如果您也认为是,请像我一样标记该答案。 - Bartłomiej Semańczyk
显示剩余10条评论

33

使用Swift 2.3在Xcode 8中的文章由 That Thing in Swift 提供,为使用Swift 2.3在Xcode 8中提供了良好的入门介绍。

以下内容摘自该文章:

  

有一个单独的构建设置将让您继续使用与Xcode 7中现有项目语法基本相似的Swift版本构建您的Swift项目:使用旧版Swift语言版本

     

只需进入项目的构建设置并搜索旧版Swift即可找到正确的构建设置,然后将设置切换为YES以选择加入Swift 2.3而不是Xcode 8中的Swift 3。

输入图像描述


我的设置已经是“YES”,但我仍然收到“使用旧版Swift版本错误”的提示。奇怪的是,它不是来自项目,而是来自UITest框架。 - KMC
NVM,我刚刚使用了cdm + alt + shft + k,错误已经消失了。 - KMC
6
在我的Xcode 8.3.2中,没有这样的设置。在Swift Compiler下,只有一个名为Swift Language Version的构建设置,并且Swift 3是唯一的选择。 - thundertrick
我尝试了同样的方法,但仍然遇到了很多错误,请问您能否分享其他解决方法? - Chandni

6

3
作为解决这个问题的可能方案之一,我建议同时安装两个版本的Xcode(例如7.3.1和8)。
要完成此操作,您应该:
  1. 苹果开发者下载页面下载适当的dmg文件,并使用搜索查找Xcode。
  2. 双击此文件,即可看到熟悉的“将Xcode拖入应用程序文件夹以安装”的窗口。但是,请先将其拖到其他位置,例如桌面。然后将其重命名为Xcode \number of version\(如Xcode 7.3.1),然后将其拖到应用程序文件夹中。
就是这样。

但是你不能直接将其附加到您的 Mac 上并在 iOS 10 设备上运行。 - v-i-s-h-a-l
你可以:https://gist.github.com/steipete/d9b44d8e9f341e81414e86d7ff8fb62d - timbroder

1

在构建设置中将“使用传统的Swift语言版本”设置为“是”,不能在XCode8中使用Swift2.2。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接