Xcode 自动完成功能在 Swift 游乐场的 Sources 文件夹中不起作用
Posted
技术标签:
【中文标题】Xcode 自动完成功能在 Swift 游乐场的 Sources 文件夹中不起作用【英文标题】:Xcode autocomplete does not work in Sources folder of Swift playgrounds 【发布时间】:2018-07-14 18:28:57 【问题描述】:我正在开发一个 Swift 操场,该操场在主文件旁边的 Sources 文件夹中包含多个文件。当我在主文件中键入某些内容时,例如“UI”,我会得到预期的自动完成建议。但是,当我在 Sources 文件夹中的文件中执行相同操作时,我会得到一个“愚蠢”的自动完成菜单,如以下问题所示:Xcode 9 Autocomplete Not Working 100% - Partially Working
我已尝试按照上述问题中的建议删除 DerivedData
,甚至完全重新安装 Xcode。然而,问题并没有消失。我创建了一个新的 Playground 以确保它不是特定于这个项目,并且会出现同样的问题。
编辑:我只是在不同的 Mac 上尝试了同样的事情,并且发现了同样的问题。我想这只是 Xcode 中的一个错误,与这个特定的安装或项目无关。
【问题讨论】:
您是否遵守了资源文件的访问规则?是否全部标记为公开和开放? @sabi 类被标记为公开,是的。 【参考方案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 项目(使用自动完成) -> 打开游乐场
自动完成功能将照常工作
【讨论】:
以上是关于Xcode 自动完成功能在 Swift 游乐场的 Sources 文件夹中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 swift 将 google 地方自动完成功能添加到 xcode(教程)
Xcode 游乐场 - Swift 4 未接收 JSON 数据