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 文件夹中不起作用
Xcode 如何在 Build Phases -> Compile Sources 中确定源文件的位置?
从 XCode 将文件提交到 Github 的问题:警告:无法访问“/Users/alexandra/.config/git/ignore”:权限被拒绝