我注意到如果你将Xcode拖入Xcode两次,那么它会在项目导航器视图中重复*。换句话说,它被列出两次。
两个问题:
* Xcode中通常最左边的列,其中包含项目中的文件列表
**通过右键单击其中一个图像文件 - >然后点击删除选项 - >然后选择“删除参考”
***删除引用只删除其中一个文件,另一个文件保留。
答案 0 :(得分:4)
项目文件包含对文件的引用列表。这些文件可能位于本地项目文件夹中,也可能位于其他任何位置。
将相同的文件拖入两次,并选择复制到项目文件夹,第二次出现错误。您不能在同一文件夹中使用相同名称的两个文件。但是对文件的引用没有这样的限制。它们只是项目文件列表中的条目。
因此,如果拖动文件而不移动文件,则只创建引用。
是的,当您右键单击其中一个引用并选择删除时,您可以选择仅删除引用,或者还将引用的文件移动到废纸篓。仅删除参考是非常安全的。该文件将不受影响,另一个对该文件的引用仍然有效。
答案 1 :(得分:1)
要了解发生这种情况的原因,您需要了解添加文件时的选项。将图像或文件添加到项目时,您可以启用或禁用以下选项:
将项目复制到目的地组的文件夹(如果需要)
那究竟是什么意思呢?通过选择(选中)此选项,您可以将原始文件的副本复制到Xcode项目组文件夹中。现在,当您从源代码调用文件时,您将引用您复制到Project组文件夹中的文件。原始文件,无论在哪里(桌面)都保持不变。
注意 - "如果需要"限定词意味着什么?
如果文件已存在于项目组文件夹中,则该文件将不会复制到该文件夹中。只需将参考添加到项目导航器中。如果这没有意义那么我会给你一个实际的例子。假设您创建了一堆图像并将它们直接添加到项目文件夹中。我的意思是你使用finder(不是通过Xcode)将它们拖放到Xcode项目文件夹中。此时您已将文件添加到项目中,但是如果打开Xcode项目,您会注意到在导航器中没有看到对该文件的引用。因此,这将是触发if if限定符的情况。您仍然需要像往常一样通过Xcode添加对文件的引用。但这次只是引用,没有文件被复制到项目文件夹中,因为它已经存在。
如果您未选中该选项会怎样?
Xcode将创建对该文件的引用,但不创建该文件的副本并将其添加到项目中。 Xcode项目中的引用将指向文件的原始位置,无论它位于何处。除非您知道原因并且需要执行此操作,否则不建议这样做,因为如果您不小心删除了原始文件,则会破坏对该文件的引用。您将知道何时发生这种情况,因为Xcode中的文件引用将以红色显示。
现在回到你的案子。在您的情况下发生的情况是您使用未选中的选项将文件添加到项目中。这将在Xcode中创建对文件的引用,实际上将文件移动到项目中。第二次将它添加到项目中时,您正在创建对该文件的新引用,但您实际上并未执行任何文件操作,如移动或复制,这就是为什么您没有出现错误。
我建议始终选中上面的选项。这样,您将知道是否将重复文件添加到项目中。此外,您不会在将来某个时候破坏对文件的任何引用。希望这有助于您了解事情背后的原因。