Xcode自动完成功能在Swift playgrounds的Sources文件夹中不起作用

bre*_*-ai 12 xcode autocomplete swift swift-playground

我正在一个Swift游乐场上工作,该游乐场在主文件旁边的Sources文件夹中包含多个文件.当我在主文件中键入某些内容(例如"UI")时,我会收到预期的自动填充建议.但是,当我在Sources文件夹中的文件中执行相同操作时,我会收到一个"哑"自动完成菜单,如此问题中所示:Xcode 9自动完成不工作100% - 部分工作

我已经DerivedData按照上面的问题的建议尝试删除,甚至完全重新安装Xcode.然而,问题并没有消失.我创建了一个新的游乐场,以确保它不是特定于此项目,并出现同样的问题.

编辑:我只是尝试在不同的Mac上做同样的事情,并观察到同样的问题.我想这只是Xcode中的一个与此特定安装或项目无关的错误.

JoR*_*oRa 20

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

然后你可以导航到

Target -> Build Phases -> Compile Sources -> + -> Add other
Run Code Online (Sandbox Code Playgroud)

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

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

  • 请注意,您无法在Xcode的"添加其他"对话框中打开游乐场包...在Finder中打开它并将标题栏图标拖到对话框中.https://superuser.com/questions/414410/in-mac-os-x-how-do-i-navigate-into-a-package-from-file-chooser (2认同)
  • 这可能是最好的解决方案,但不是一个好的解决方案。苹果应该解决这个问题。 (2认同)