如何在 XCode 8 Playgrounds 中使用 Swift 2.3?

Posted

技术标签:

【中文标题】如何在 XCode 8 Playgrounds 中使用 Swift 2.3?【英文标题】:How can I use Swift 2.3 in XCode 8 Playgrounds? 【发布时间】:2016-06-15 22:41:12 【问题描述】:

我的 Playground 项目是用 Swift 2.2 编写的,我想利用时间线视觉效果并尝试 Xcode 8 beta 中引入的新调试功能。默认情况下,Xcode 8 beta 在 Playgrounds 中使用 Swift 3,我找不到改变它的方法。不幸的是,将我的代码更新到 Swift 3 不是一种选择,因为我的代码将在具有 Swift 2.2 环境的服务器上编译。

【问题讨论】:

当你说游乐场项目时,你是指.playground 还是.xcodeproj 我的意思是.playground 【参考方案1】:

不幸的是,根据 Apple 的说法,这是不可能的:

例如,Xcode 中的 Playgrounds 仅适用于 Swift 3,尤其是适用于 iPad 的 Swift Playgrounds 应用程序也使用 Swift 3。Xcode 项目模板都使用 Swift 3,并且所有文档都以适合 Swift 3 的格式呈现。

更多here.

【讨论】:

【参考方案2】:

您可以将 Swift 2.2 转换为 Swift 2.3 以在 Xcode-beta 8 中使用。

是的,Swift 3 是默认设置,但是当您在 Xcode 中执行 Edit > Convert > To Current Swift Syntax... 时,您会看到以下对话框。

这也在我的 project.pbxproj 中为SWIFT_VERSION = 2.3 创建了一个条目

【讨论】:

不回答如何更改 Playgrounds 正在使用的 swift 版本的问题。 @RobLabs 这对我不起作用。如果我将 Playground 保存为工作区,Edit > Convert > To Current Swift Syntax... 将变为可用,但它会挂起并显示消息 "Generating preview..." 我认为这是另一种情况,因为 Playgrounds 不包含 *.pbxproj 包,因此没有项目设置,因此无法设置 SWIFT_VERSION = 2.3 这绝对行不通,在尝试了许多不同的事情之后,除了 Xcode 中最新版本的 Swift 之外,没有办法告诉 Playground 使用任何东西。【参考方案3】:

我在一个项目中有一个遗留的 Playground(使用 xcode 7 创建),我已经在 XCode 8 上迁移到 Swift 2.3 语法,即使它仍然使用 Swift 2.3 语法,我的 Playground 也可以工作,所以我想有一种方法。

【讨论】:

以上是关于如何在 XCode 8 Playgrounds 中使用 Swift 2.3?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 更新后 Swift Playgrounds 无法正常运行

创建 UITextView 时,如何在实时视图中显示的 Swift Playgrounds(在 Xcode 上)的 UI 中隐藏键盘?

如何防止 Xcode 7 Playgrounds 自动运行?

在 XCode Playgrounds 中注册单元重用标识符

您如何在 Swift Playgrounds 中的 iPad 上的 SwiftUI 中渲染 Text("Content") 与 Mac 上的 Xcode?

如何在 Playgrounds 中显示原型预览?