Xcodeでファイルを削除したいとき。「ゴミ箱に移動」と「参照を削除」のどちらを選択すればよいですか?
私はいつもゴミ箱に移動することを選択します。なぜなら、それは間違いなく実際のファイルを削除すると思ったからです。しかし、それが正しいかどうかはわかりません。では、それらの違いは何ですか?
Xcodeでファイルを削除したいとき。「ゴミ箱に移動」と「参照を削除」のどちらを選択すればよいですか?
私はいつもゴミ箱に移動することを選択します。なぜなら、それは間違いなく実際のファイルを削除すると思ったからです。しかし、それが正しいかどうかはわかりません。では、それらの違いは何ですか?
Xcodeは、プロジェクトを構成するファイルへの参照をプロジェクトファイル、つまりprojectName.xcodeprojファイルに保存します。理論的には、プロジェクトを構成するソースファイルとリソースファイルは、ハードディスク全体に存在する可能性があります。もちろん、それは良い習慣ではありません。
したがって、既存のファイルをプロジェクトに追加すると、Xcodeは、そのファイルをプロジェクトのフォルダーにコピーするかどうかを尋ねます。これは通常、実行する必要があります。したがって、ファイルを削除しようとすると、Xcodeは、プロジェクトから参照を削除するだけでよいか(そして、ドライブ上のどこにでもファイルを保持するか)、ファイルも削除するかどうかを尋ねてきます。
基本的に、ファイルを追加するときに[プロジェクトにコピー]をオンにする場合は、削除するときに[ゴミ箱に移動]を選択する必要があります。それ以外の場合は、[参照を削除]を選択します。この後者のオプションは、ファイルをそのまま残し、そのファイルへの参照を削除するだけです。
この質問に対する直接の答えではありませんが、知っておくとよいでしょう。ブランチにDevice.swiftという名前のファイルを作成し、それにコードを追加しました。次に、同僚も同じファイルDevice.swiftを自分のブランチに作成し、変更をマージする前にマージしました。
何が起こるかというと、私のxcodeproj/project.pbxproj
ファイルには次のようなものがありました:</ p>
5C5809E72257D81500D4CBB2 /* Device.swift in Sources */
彼の変更があったマスターブランチにいる間、次のことがありました:
26E3A7A5226F6E13001B176C /* Device.swift in Sources */
両方がありますDevice.swift
。両方とも同じ行を変更したため、Xcodeはこれをマージの競合と見なします。両方をそのままにしておくと、XcodeでDevice.swift
2回表示されることになり、コンパイルされません。</ p>
Device.swift
彼が/Modell/Gadgetsに追加している間に/Models/ Devicesに追加した場合も、さらに問題になります。
解決策:
5C5809E72257D81500D4CBB2 /*Device.swiftまたはその他へのすべての参照を削除します。どちらを削除するかを100%判断できないので、Device.swift
以前のコピーを入手してから削除を開始しました。
また、ファイルが2つの異なるディレクトリにある場合は、そのうちの1つを手動で削除する必要があります。どちらでも