swift - Xcode 10 的编译器看不到文件夹引用中的 Swift 文件中的类
问题描述
我们有一个包含近 1K Swift 文件的项目。如果所有内容都在组内,它就可以很好地工作,但是当尝试将一些文件夹引用添加到包含 Swift 文件的目录时,编译器只是看不到这些文件中定义的任何东西(例如类)。它适用于捆绑和数据文件,但不适用于源代码。
我还尝试使用不同的方法(拖动、使用菜单和手动浏览等)将现有组更改为文件夹,并且 XCode 停止查看在这些 Swift 文件夹文件中声明的实体。当我将同一个文件夹切换回一个组时(删除-> 删除引用-> 将文件添加到项目...),它又可以工作了。
请注意,我打开了文件检查器,并且已经确保检查了参考文件夹的目标。还尝试取消选中它并再次检查,以防万一添加文件时出现另一个 XCode-bug。没有任何效果。
我所做的另一个实验是将文件夹移动到根目录,因此该文件夹不在group中。也没有用。
每次尝试后,我总是清理项目的构建文件夹,以防万一。
请注意,以下问题并未提供任何有用的提示来解决此问题:
当然,另一个对我来说没有意义,因为我想要文件夹,而不是组,因为我发现它们更容易使用,特别是维护,考虑到这个特定项目的大量 Swift 文件:将文件夹添加到Xcode 项目未正确添加
解决方案
它适用于捆绑和数据文件,但不适用于源代码。
是的,嗯,那是因为它们是完全不同的东西,需要以完全不同的方式对待。
您不能将代码放入文件夹引用(蓝色)中。那只是意味着“将此代码文件复制到应用程序的主体中”,这很愚蠢。这就是您对捆绑和数据文件所做的事情。
如果问题是在项目窗口中组织您的代码文件引用,您可以使用:
- 一组(黄色,下角有红色标记)
- 或者,一个文件夹链接组(黄色简单明了)
在后一种情况下,代码文件本身也会放在项目窗口内磁盘上的相应文件夹中,所以这也是磁盘上的一种组织方式。
注意但请注意,您必须始终让 Xcode 自己组织项目文件夹的内容!您必须完全在项目窗口的项目检查器中工作。远离 Finder。否则,你会破坏你的项目。
推荐阅读
- windows - 切换到 wow64 模式时无法获取进程/线程上下文
- sql - 显示查询以根据条件组合同一数据库表中的行
- php - 在 php 和 mysql 中创建多维数组
- java - (Java) 在倒数第二个正斜杠和最后一个正斜杠之后获取字符串值
- ios - 创建一个内部有 2 个 UiView 的水平 Stackview
- spring-cloud-stream - Spring Cloud StreamListener @Output KStream Serdes 似乎不起作用
- python - TypeError:无法将 feed_dict 键解释为张量,需要了解会话和图表
- php-carbon - PHP Carbon 是否具有使用类似 strtotime() 的字符串的日期调整功能接受
- ffmpeg - 浏览器下载视频流而不是播放它
- r - 使用循环在R中读取和写入多个文件