我已经从 Xcode 6 升级到 Xcode 8.2,因为自从引入 Swift 以来,我在过去的几年里一直没有进行开发。 现在,我发现我从网上下载的所有项目,包括Apple的Swift playgrounds和Github上的所有Swift 2.3开源项目都无法编译。
首先我得到以下错误:
“使用旧版 Swift 语言版本”(SWIFT_VERSION) 需要为使用 Swift 的目标正确配置。使用 [Edit > Convert > To Current Swift Syntax...] 菜单选择 Swift 版本或使用 Build Settings 编辑器直接配置build设置。
当我按照 stackoverflow 中的其他答案修复它时,即通过将属性编辑器中的值设置为是,我收到各种 Swift 编译器错误,这些错误对于每个项目总是不同的,例如:
期权的值(value)展开
从“UITableViewCell”向下转换?到 'UITableViewCell' 只解包选项;您是要使用“!”吗?
方法“parser(:didStartElement:namespaceURI:qualifiedName:attributes:)”提供的 Objective-C 方法“parser:didStartElement:namespaceURI:qualifiedName:attributes:”与可选的要求方法“parser(:didStartElement:namespaceURI:qualifiedName:attributes:)' 在协议(protocol) 'NSXMLParserDelegate' 中
我做错了什么吗?到目前为止,除了我在 Xcode 中创建的空白选项卡式 View 应用程序和我从 GitHub 下载的非常新的 Swift 3.2 应用程序之外,我无法运行任何应用程序。
最佳答案
你没有做错任何事。 Xcode 8 仅适用于 swift 2.3 或 3.x。它默认使用 swift 3 编译。这就是您看到的错误的原因。
要使用 swift 2.3 进行编译,只需进入项目的build设置并搜索 legacy swift 以找到正确的build设置,然后将设置切换为 YES 以选择加入 Swift 2.3 而不是 Swift 3。
你可能仍然会遇到一些编译错误,但由于 swift 版本之间的差异较小,所以会少很多。
问题在于第 3 方库,它们必须与您的项目使用相同版本的 Swift。因此,如果您使用的是 Swift 2.3,则不能使用用 Swift 3.0 编写的库。
话虽如此,我确实建议您继续使用 swift 3 并修复错误。这并不难,因为在大多数情况下 xcode 会建议正确的语法。
关于swift - 代码 8 : Most Swift projects fails to build and compile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43818594/