Sources 文件夹中的文件无法访问 Xcode 游乐场中其他文件的公共类或函数

Posted

技术标签:

【中文标题】Sources 文件夹中的文件无法访问 Xcode 游乐场中其他文件的公共类或函数【英文标题】:files in Sources folder cannot access the other files' public classes or functions in Xcode playground 【发布时间】:2021-04-16 04:52:50 【问题描述】:

在我的一生中,我无法在任何地方找到解决方案,所以在我看来这是一个 Xcode 游乐场错误。

在 Sources 文件夹中,尽管我将一个类声明为 public,但当我尝试从单独的文件(在 Sources 文件夹中)访问该类时,编译器会给我一条错误消息,指出它在范围内找不到该类.

但是,当我运行 Playground 并忽略该消息时,程序会构建并运行成功,并且错误消息会消失,直到我开始修改代码。

奇怪的是,它不会发生在 App 项目中;它只发生在操场上。

我用一个名为“test”的游乐场文件做了一个简单的演示,并截图了发生的事情,你可以在下面的附图中看到,请指教!非常感谢!

尝试过的解决方案包括:

    重启 Xcode 重启 Mac 删除 Xcode 并重新安装 Xcode

在范围内找不到 Person 类,尽管它被标记为 public

但是 Person 类被标记为 public

代码编译成功

运行 Playground 后错误消失,但我修改后立即返回

【问题讨论】:

【参考方案1】:

奇怪的是,它不会发生在 App 项目中;它只发生在操场上。

其实那部分正是奇怪的。应用程序项目是可预测的。游乐场是魔鬼的杰作,很容易让它们行为不端。

您所看到的肯定是一个错误,尤其是因为它不能被其他人轻易复制。在我的机器上,没有错误消息,一切正常:

您可以尝试将import test_Sources 添加到麻烦的文件中,但我不能保证它会有所作为。我真正建议你避免去游乐场。

【讨论】:

感谢您的及时回复!我不确定作为可测试模块导入的语法是什么,会是 "@testable" 吗?并指出,关于操场是一团乱七八糟的东西……什么可以代替操场?对于我正在阅读的大多数 swift 书籍,我都需要使用 Playground,谢谢!

以上是关于Sources 文件夹中的文件无法访问 Xcode 游乐场中其他文件的公共类或函数的主要内容,如果未能解决你的问题,请参考以下文章

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

无法访问 MoPub iOS SDK 中的头文件

Xcode 如何在 Build Phases -> Compile Sources 中确定源文件的位置?

无法使用 Xcode 从代码访问文件 - ios

SwiftUI:无法删除列表中的行

从 XCode 将文件提交到 Github 的问题:警告:无法访问“/Users/alexandra/.config/git/ignore”:权限被拒绝