我已经从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应用程序之外,我还没有能够运行任何应用程序。
答案 0 :(得分:0)
你没有做错任何事。 Xcode 8仅适用于swift 2.3或3.x.并默认使用swift 3进行编译。这是您看到的错误的原因。
要使用swift 2.3进行编译,只需进入项目的构建设置并搜索旧版swift以找到正确的构建设置,然后将设置切换为YES以选择加入Swift 2.3而不是Swift 3。
你可能仍然会遇到一些编译错误,但由于swift版本的差异较小,所以可能会少得多。
问题在于第三方库,它必须与您的项目在同一版本的Swift中。因此,如果您使用的是Swift 2.3,则不能使用用Swift 3.0编写的库。
话虽如此,我建议您继续使用swift 3并修复错误。这并不难,因为在大多数情况下xcode建议使用正确的语法。