类 in Swift 文件夹引用中的文件未被 Xcode 10 的编译器识别

Classes in Swift files inside folder references not seen by Xcode 10's compiler

我们有一个包含将近 1K Swift 个文件的项目。如果一切都在组内,它就可以很好地工作,但是当试图将一些文件夹引用添加到包含 Swift 文件的目录时,编译器只是看不到这些文件中定义的任何东西(类,因为例子)。它适用于捆绑包和数据文件,但不适用于源代码。

我还尝试使用不同的方法(拖动、使用菜单和手动浏览等)将现有组更改为文件夹,并且 XCode 不再看到这些 Swift 文件夹文件中声明的实体.当我将同一个文件夹切换回一个组时(删除 -> 删除引用 -> 将文件添加到项目...),它再次工作。

请注意,我打开了文件检查器,并且已经确保检查了参考文件夹的目标。还尝试取消选中它并再次检查,以防添加文件时出现另一个 XCode-bug。没有任何效果。

我做过的另一个实验是将一个文件夹移动到根目录,因此该文件夹不在一个组 中。也没用。

每次尝试后,我总是清理项目的构建文件夹,以防万一。

请注意,以下问题没有提供任何解决此问题的有用提示:

当然,这另一个对我来说没有意义,因为我想要文件夹,而不是组,因为我发现它们更容易使用,特别是,考虑到大量 Swift此特定项目的文件:

It works well for bundle and data files, but not for source code.

是的,嗯,那是因为它们是完全不同的东西,需要以完全不同的方式对待。

您不能将代码放在文件夹引用中(蓝色)。那将只是意味着 "copy this code file into the body of the app",这将是愚蠢的。这就是您对捆绑包和数据文件所做的事情。

如果问题是在项目window中组织你的代码文件引用,你可以使用:

  • 一组(黄色下角有红色标记)
  • 或者,文件夹链接组(黄色简单)

在后一种情况下,代码文件本身也会放在项目内部磁盘上的相应文件夹中window,所以这也是磁盘上的一种组织方式。

注意 但请注意,您必须始终让 Xcode 自己组织项目文件夹的内容!您必须完全在项目 window 的项目检查器中工作。远离Finder。否则,你会破坏你的项目。