【问题标题】:Xcode autocomplete does not work in Sources folder of Swift playgroundsXcode 自动完成功能在 Swift 游乐场的 Sources 文件夹中不起作用
【发布时间】:2018-07-14 18:28:57
【问题描述】:

我正在开发一个 Swift 操场,该操场在主文件旁边的 Sources 文件夹中包含多个文件。当我在主文件中键入某些内容时,例如“UI”,我会得到预期的自动完成建议。但是,当我在 Sources 文件夹中的文件中执行相同操作时,我会得到一个“愚蠢”的自动完成菜单,如以下问题所示:Xcode 9 Autocomplete Not Working 100% - Partially Working

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

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

【问题讨论】:

  • 您是否遵守了资源文件的访问规则?是否全部标记为公开和开放?
  • @sabi 类被标记为公开,是的。

标签: swift xcode autocomplete swift-playground


【解决方案1】:

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

然后你可以导航到

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

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

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

【讨论】:

  • 请注意,您无法在 Xcode 的“添加其他”对话框中打开 Playground 包...在 Finder 中打开它并将标题栏图标拖到对话框中。 superuser.com/questions/414410/…
  • 这可能是最好的,但不是一个好的解决方案。苹果应该解决这个问题。
【解决方案2】:

Swift Playgroundbook 不支持自动完成功能。尝试在常规的 Swift Playground 中编写代码,然后将代码移至 Playgroundbook。

【讨论】:

    【解决方案3】:

    这对我每次都有效, 重启/开始 -> 打开任何现有的 Xcode 项目(使用自动完成) -> 打开游乐场

    自动完成功能将照常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多