Xcode 自动完成在 Swift 游乐场的源文件夹中不起作用

Xcode autocomplete does not work in Sources folder of Swift playgrounds

我正在开发一个 Swift playground,它在 Sources 文件夹中包含多个文件以及主文件。当我在主文件中键入内容时,例如 "UI",我会得到预期的自动完成建议。但是,当我在 Sources 文件夹中的文件中执行相同操作时,我会得到一个 "dumb" 自动完成菜单,如以下问题所示:

我已尝试按照上述问题中的建议删除 DerivedData,甚至竭尽全力完全重新安装 Xcode。然而,问题并没有消失。我已经创建了一个新的 playground 以确保它不是特定于这个项目的,并且出现了同样的问题。

编辑:我只是在另一个 Mac 上尝试了同样的事情,发现了同样的问题。我想这只是 Xcode 中的一个错误,与此特定安装或项目无关。

为了启用自动完成功能,您可以将 Playground 嵌入到常规 Xcode 项目(例如 iOS 应用程序)中。我建议为此创建一个虚拟项目。只需将您的游乐场拖放到这个虚拟项目中,并确保选中 "Add to target".

然后您可以导航到

Target -> Build Phases -> Compile Sources -> + -> Add other

并添加源文件夹中的所有文件。请注意,您不需要实际复制文件,一个参考就足够了。

在此过程之后,您的所有源文件都将针对此虚拟目标构建,您可以像往常一样使用自动完成功能。据我所知,这是目前调试 Playgrounds 的最佳实践。无论如何,我很好奇,是否有更简单的方法来实现它。

Swift playgroundbooks 不支持自动完成。尝试在常规 Swift playground 中编写代码,然后将代码移至 playgroundbook。

这每次都对我有用, Restart/Start -> 打开任何现有的 Xcode 项目(使用自动完成) -> 打开 playground

自动完成将照常工作