2017-05-06 89 views
1

我已经从Xcode 6升级到Xcode 8.2,因为自从引入Swift以来,我从未开发过这几年。 现在,我注意到我从互联网上下载的所有项目,包括Apple的Swift操场和Github上的所有Swift 2.3开源项目都无法编译。Xcode 8:大多数Swift项目无法构建和编译

首先,我得到的错误如下:

需要“使用传统的雨燕语言版本”(SWIFT_VERSION)被正确配置对于使用雨燕的目标。使用[编辑>转换>至当前Swift语法...]菜单选择一个Swift版本,或使用Build Settings编辑器直接配置构建设置。

当我固定它按在计算器其他答案,这是通过在属性编辑器是设定值,我得到了各种各样的斯威夫特编译器错误,这些错误总是为每个项目不同,如:

选项的价值展开

从'UITableViewCell?'下降到'UITableViewCell'只解开可选项;你的意思是使用'!'吗?

Objective-C的方法 '解析器:didStartElement:的namespaceURI:的qualifiedName:属性:' 由方法提供 '解析器(:didStartElement:的namespaceURI:的qualifiedName:属性:)' 与任选要求方法“解析器(冲突:didStartElement: namespaceURI:qualifiedName:attributes :)'in protocol'NSXMLParserDelegate'

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

回答

0

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

要与SWIFT 2.3编译,只需拖放到你的项目构建设置和搜索遗留迅速找到正确的构建设置,然后将设置切换到YES来选择加入SWIFT 2.3,而不是斯威夫特3.

enter image description here

您可能仍然会遇到一些编译错误,但由于swift版本中的较小差异,可能会少一些。

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

这就是说,我建议你留在swift 3并修复错误。这并不难,因为xcode在大多数情况下都提供了正确的语法。