2017-02-09 49 views
0

我目前工作的公司支持使用Swift 2.3编写的旧版产品(我不同意它)。目前他们当前想要继续推出支持旧版本的功能,因此,我目前对使用Swift 3.0编写的pod具有约束力。将使用Swift 3.0编写的模块迁移到Swift 2.3?

我试图通过安装Xcode 7.3.1将语法转换回Swift 2.3,目的是希望迁移该代码。不幸的是,由于它是用Swift 3.0编写的模块,我的努力是徒劳的。

虽然我并不反对在Swift 2.3中编写代码,但我知道我会从长远来看一个乏味的过程。我应该采取哪些步骤将用Swift最新版本编写的模块迁移回2.3版本?

+0

你试图访问的窗口有一个Swift 2的旧版本吗?例如,我不小心使用了一个为Swift 2.3设计的老版本的Alamofire,这个项目是我设置依赖项目的,而且我得到了旧版本的AF,因为我在Podfile中复制了一些关于该版本的旧代码。我相信如果旧模块存在,您仍然可以访问它。 – Pierce

+0

@Pierce不,它没有。它是用Swift 3.0编写的。我尝试寻找具有较旧版本的豆荚,但该豆荚似乎根本没有。我确实要联系存储库的贡献者,他们确实提供了在Swift 2.3中编写一个,但恐怕这对他们来说可能不是一个可行的事情+我并不真正期望他们对任何人。我想尝试以最好的方式来操纵这个障碍,因为它实际上是唯一一个可以满足我正在进行的项目中的重要需求的吊舱。 – Alex7

回答

2

首先,您可以使用Xcode 8来执行此操作。选择每个方案,然后在构建设置中将“使用旧版swift版本”设置为yes。编译然后运行。 Swift将开始出现很多错误。例如,该代码(SWIFT 3):

SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 10) 

SKAction.rotateByAngle: CGFloat(M_PI_2), duration: 10) 
在迅速2.您需要手动修复所有SWIFT说错误

,所以你需要的一个清晰的认识旧的swift语法。

+0

那么你是说我可以将前面提到的那个具有Swift 3.0语法的窗口并尝试通过在构建设置中更改旧版本的布尔值来尝试在Swift 2.3中迁移它并继续修复每个单独的错误?肯定是一个乏味的过程,但值得一试。谢谢! – Alex7

+1

是的,你可以做到这一点,如果你想支持传统快速 – paper1111

+0

@ Alex7这是正确的答案?你应该勾选它,如果它... – paper1111

相关问题