26

当我想在 Xcode 中删除文件时。在“移至垃圾箱”和“删除参考”之间,我应该选择哪一个?

我之前总是选择移至垃圾箱,因为我认为它肯定会删除真实文件。但不确定这是否正确。那么它们之间有什么区别呢?

4

2 回答 2

42

Xcode 将组成项目的文件的引用存储在项目文件中,即 projectName.xcodeproj 文件。从理论上讲,构成项目的源文件和资源文件可能遍布您的硬盘;当然,这不是一个好习惯。
因此,当您将现有文件添加到项目时,Xcode 会询问您是否要将其复制到项目的文件夹中,这通常是您应该做的。所以,当你要删除一个文件时,Xcode 会询问你是只想从项目中删除引用(并将文件保留在驱动器上的任何位置)还是要删除该文件。

基本上,如果您在添加文件时选中“复制到项目”,则在删除时应选择“移动到垃圾箱”,否则选择“删除引用”。后一个选项将保留文件并删除对它的引用。

于 2012-05-24T15:08:40.253 回答
0

不是这个问题的直接答案,但很高兴知道。我在我的分支中创建了一个名为 Device.swift 的文件,并向其中添加了一些代码。然后我的同事还在他的分支中创建了相同的文件 Device.swift 并在我合并我的 chnages 之前将其合并。

将会发生的是,在我的xcodeproj/project.pbxproj文件中都有类似的内容:</p>

5C5809E72257D81500D4CBB2 /* Device.swift in Sources */

在进行更改的主分支中,有:

26E3A7A5226F6E13001B176C /* Device.swift in Sources */


 我们都会有Device.swift。Xcode 会将此视为合并冲突,因为我们都更改了同一行。如果你只是让它们都在那里,那么在你的 Xcode 中你可能最终会看到Device.swift两次并且它不会编译。</p>

如果我Device.swift在 /Models/Devices 中添加它,而他将它添加到 /Modell/Gadgets 中,这也将是一个更大的问题。

解决方案: 删除所有对:5C5809E72257D81500D4CBB2 /* Device.swift 或其他的引用。我不是 100% 确定如何决定应该删除哪个,所以我得到了我Device.swift之前的副本,然后开始删除。

而且,如果文件位于两个不同的目录中,那么您必须手动删除其中一个。无论你喜欢哪个

于 2019-04-25T21:37:07.957 回答