gpt4 book ai didi

objective-c - 为什么将 Objective-C header 或代码文件从一个文件夹拖到另一个文件夹会使其在 Xcode 4.6 中变成红色?

转载 作者:行者123 更新时间:2023-12-03 16:58:05 25 4
gpt4 key购买 nike

我有一个 Xcode 4 Objective-C 项目,其中包含大约 150 个 .m 和 .h 文件。项目底层的代码在底层磁盘结构中并不总是与 Xcode 项目中显示的文件夹相对应。我明白那部分。

我不明白的是为什么 Xcode 不会告诉我为什么我可以创建新的项目组并将项目移动到它们,没有任何问题,但某些现有的项目文件夹会导致项目损坏,并且一旦我将某些 .m 文件或 .h 文件移动到不同的组中,代码将不再构建。当它损坏时,它只会将文件显示为红色。这令人沮丧和困惑。

在下面的屏幕截图中,之前的图像左侧显示之前的状态,当一切正常时,右侧显示移动到组后的红色(丢失)文件。鉴于组不代表磁盘上的文件夹,我不希望从一个组移动到另一个组会破坏事情。有时会,有时不会。这个特定的 XCode 问题让我很不安。

在友好的 Mac 用户界面的美好时光中,您可以点击 +I 并获取有关对象属性的一些信息,或者右键单击并获取通过上下文菜单访问某物的属性。 XCode 项目中的组(文件夹图标)在其上下文(右键单击菜单)中没有属性项,但这些组显然并不完全相同。这些看起来一模一样的群体是怎么回事?

其次,一个人如何学习如何重新组织磁盘上的文件夹组织和视觉组组织,以一种不会让你流血和殴打的方式? (XCode 4 是我用过的最难的 IDE 版本,为此,我确信我错过了一些有关处理文件夹和文件等的重要文档。)

enter image description here

更新:文件检查器(实用程序菜单中的身份检查器)是解开这个谜团的关键,但我仍然不知道新用户如何发现这一点(除了痛苦的经历)。我也不太明白这一切是什么意思,路径下拉列表中提供了各种选择,空白或非空白值没有描述或帮助,只是一个神秘的图标和一些真实的名称-disk-folder 或灰色文本字段显示“无”:

enter image description here

最佳答案

这种事情不会突然发生。在这种情况下,发生的情况是用户打开了 .xcodeproj 并且不知道可以所属的各种相对或绝对路径选项之间的差异。 XCode 中的始终在 XCode 项目中以完全相同的马尼拉色文件夹图标显示,无论它在其中定义了什么模式或属性。

默认情况下,最简单的情况是您在 XCode 中创建一个新的文件夹 Group 对象,它纯粹是一个装饰性组织工具,其中不存储任何磁盘位置信息。

这不是这些组所做的唯一事情,也不是这些组可以使用的唯一“模式”。这些组还可以用于指向某个文件夹并说“此虚拟文件夹中的内容”实际上在其他地方,要么在该项目的主文件夹下的子目录中,要么甚至在硬盘驱动器上的其他位置,要么以相对路径或绝对路径格式存储”。当这样使用时,这些东西让我想起桌面上的 Windows“快捷方式”对象,或取景器中的 Mac“别名”对象。

将文件从一个组拖动到另一个组不会将其移动到磁盘上的其他文件夹。它只是将对具有特定名称的文件的引用移动到另一个组,这可能意味着在拖动文件后,您并没有真正以任何方式移动、复制或重新定位它,您'我们刚刚将别名从可以正确解析为真实文件的位置移至无法正确解析的位置。因此,XCode 会帮助您将其变为红色,而不会提供有关所发生情况的任何有用的错误消息。

如何解决这个问题?在这种情况下,请转到“实用程序”菜单中的“身份检查器” Pane ,然后决定清除我在原始问题的图片中显示的“类”位置处的虚假值。清除无效值并不容易,因为 XCode 要求您基本上找到项目的根文件夹并选择它,这将“清除”文件夹组上的相对或绝对路径属性。

或者,您可以不理会该文件夹,只是不要将文件从 A 组拖动到 B 组,而不先检查它们引用的相对或绝对路径。

对我来说仍然可怕的是 XCode 教程告诉你“使用 XCode 来管理项目的内容,不要只是在 XCode 项目目录内的查找器中拖动文件”,这是一个很好的建议,但它导致我假设 XCode 提供了完整且直观的物理(和虚拟)组文件夹组织工具。它不是。举个例子,假设您继承了一个项目,该项目的 .m 和 .h 文件分散在主 XCode 项目文件夹下的四个物理文件夹中,并且您想要移动这些文件。您必须在 XCode 中以及在终端或 Finder 中执行一系列棘手的操作,才能重新组织文件夹。除此之外,在您选择的版本控制工具中移动项目会带来复杂性,而且 XCode 仅对 Git 和 Subversion 的支持非常有限,因此您会遇到非常棘手的困惑。

关于objective-c - 为什么将 Objective-C header 或代码文件从一个文件夹拖到另一个文件夹会使其在 Xcode 4.6 中变成红色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com