1

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

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

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

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

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

在此处输入图像描述

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

在此处输入图像描述

4

1 回答 1

3

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

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

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

将文件从一个组拖到另一个组不会将其移动到磁盘上的其他文件夹。它只是将对具有特定名称的文件的引用移动到另一个组,这可能意味着在您拖动文件之后,您并没有真正移动它,或者以任何方式复制或重新定位它,您只是移动了从可以正确解析为真实文件的地方到无法正确解析的地方的别名。因此,XCode 会帮助您将其变为红色,而不会出现任何有用的错误信息。

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

或者,您可以单独保留该文件夹,并且不要在未首先检查它们引用的相对或绝对路径的情况下将文件从 A 组拖到 B 组。

对我来说仍然很可怕的是 XCode 教程告诉你“使用 XCode 来管理项目的内容,不要只是在 XCode 项目目录内的查找器中拖动文件”,这是一个很好的建议,但它让我假设XCode 提供了完整和直观的物理(和虚拟)组文件夹组织工具。它不是。例如,假设您继承了一个项目,该项目具有分散在主 XCode 项目文件夹下的四个物理文件夹中的 .m 和 .h 文件,并且您想要移动这些文件。您必须在 XCode 中以及在终端或 Finder 中执行一系列棘手的事情,以便重新组织您的文件夹。加上在您选择的版本控制工具中移动项目所涉及的复杂性,以及 XCode'

于 2013-02-07T20:19:28.137 回答