Xcode 8:大多数Swift项目无法构建和编译

时间:2017-05-06 08:58:12

标签: swift

我已经从Xcode 6升级到Xcode 8.2,因为自从Swift推出以来我过去几年没有开发过。 现在,我注意到我从互联网上下载的所有项目,包括Apple的Swift游乐场以及Github的所有Swift 2.3开源项目都无法编译。

首先我收到以下错误:

“使用Legacy Swift语言版本”(SWIFT_VERSION)需要为使用Swift的目标正确配置。使用[编辑>转换> To Current Swift Syntax ...]菜单选择Swift版本或使用Build Settings编辑器直接配置构建设置。

当我按照stackoverflow中的其他答案修复它时,通过将属性编辑器中的值设置为Yes,我得到各种Swift编译器错误,这些错误对于每个项目总是不同的,例如:

选项展开的价值

来自'UITableViewCell?'的堕落? 'UITableViewCell'只展开选项;你的意思是用'!'吗?

Objective-C方法'解析器:didStartElement:namespaceURI:qualifiedName:attributes:'由方法提供'解析器(:didStartElement:namespaceURI:qualifiedName:attributes :)与可选需求方法'解析器(

我做错了吗?到目前为止,除了我在Xcode中创建的空白选项卡视图应用程序以及从GitHub下载的一个非常新的Swift 3.2应用程序之外,我还没有能够运行任何应用程序。

1 个答案:

答案 0 :(得分:0)

你没有做错任何事。 Xcode 8仅适用于swift 2.3或3.x.并默认使用swift 3进行编译。这是您看到的错误的原因。

要使用swift 2.3进行编译,只需进入项目的构建设置并搜索旧版swift以找到正确的构建设置,然后将设置切换为YES以选择加入Swift 2.3而不是Swift 3。

enter image description here

你可能仍然会遇到一些编译错误,但由于swift版本的差异较小,所以可能会少得多。

问题在于第三方库,它必须与您的项目在同一版本的Swift中。因此,如果您使用的是Swift 2.3,则不能使用用Swift 3.0编写的库。

话虽如此,我建议您继续使用swift 3并修复错误。这并不难,因为在大多数情况下xcode建议使用正确的语法。