2012-04-28 6 views
36

Wenn iOS-Programmierung zu tun, ist es interessant, dass in Xcode (4.3.2), wir Gruppen, wie zum Beispiel ein Gruppenruf Images, und fügen Sie Dateien es (entweder als Link oder wählen Sie „Copy Elemente in Gruppe Ordner“ erstellen). Es sieht also aus wie ein echter Ordner im Navigator und erwähnt sogar "Kopieren in ... Ordner der Gruppe", aber tatsächlich gibt es keinen Ordner. Alle hinzugefügten Dateien befinden sich am selben Speicherort wie die Dateien .m und .h.Warum in Xcode können Gruppen erstellt werden, aber keine echten Ordner?

Warum sollten wir wollen Gruppen, aber nicht real Ordner? Gibt es einen Vorteil von Gruppen gegenüber der Verwendung eines Ordners?

+0

Sie beide tun können. –

+2

zumindest, wenn ich mit der rechten Maustaste auf den Ordner des Projekts, gibt es eine Auswahl für "Neue Gruppe", aber nicht "Neuer Ordner" –

Antwort

31

Die empfohlene Methode zum Organisieren von Dateien ist über Gruppen, da sie flexibler als das Erstellen von Verzeichnissen ist und es Ihnen ermöglicht, komplexe Dateihierarchien zu erstellen, während eine völlig andere Dateihierarchie im Dateisystem beibehalten wird. Es ist einfach ein Organisationswerkzeug. Es ist jedoch möglich, Gruppen in Ordnerverweise umzuwandeln oder sie zunächst als Ordnerreferenzen zu erstellen.

Darüber hinaus gibt Ihnen die Verwendung von Gruppen anstelle von Ordnerreferenzen mehr Flexibilität, wenn Sie ändern müssen, wo sich Dinge im Dateisystem befinden - beispielsweise ein gemeinsamer Codeordner, den Sie in verschiedenen Projekten verwenden. Mit Gruppen können Sie die Dateien innerhalb von Projekten so organisieren, als wären sie in den Projekten enthalten, während Sie gleichzeitig eine Kopie des Codes an einem zentralen Ort aufbewahren. Und ja, Sie können dies auch mit Ordnerverweisen tun, aber Gruppen sind viel flexibler, wenn Sie später andere Dinge zu derselben Gruppe hinzufügen wollen, aber nicht möchten, dass sie zu diesem gemeinsamen Ordner hinzugefügt werden.

Wenn Sie eine Gruppe in einen Ordner zu verknüpfen, klicken Sie auf die Gruppe im Dateibaum Projekt und drücken Sie Befehl + Option + 1. Unterhalb des Drop-down-Feldes befindet sich auf der rechten Seite etwas wie "Pfad: Relativ zur Gruppe". Es gibt ein kleines weißes Quadrat mit einem grauen Rand um das Symbol neben dem Wort "keine". Wenn Sie darauf klicken und dann einen Ordner auswählen/erstellen, wird die Gruppe an den Ordner gebunden.

folder reference

Darüber hinaus, wenn Sie einen Ordner, in Xcode ziehen, wird es Sie fragen, ob Sie es wollen Referenz eine Gruppe oder ein Ordner sein:

adding a folder reference

+3

Aber "binden Sie die Gruppe an den Ordner" ist nicht das gleiche wie "Ordnerverweise erstellen". Letzteres ist etwas Besonderes: Es kopiert den * Ordner * in die Build-App. – matt

+2

Aber es ist ein Schmerz, wenn Sie nach einer Klasse in Finder suchen/Svn und die Verzeichnisstruktur ist völlig anders – htafoya

+2

@htafoya Ich stimme definitiv zu. Auf der anderen Seite, wenn Sie eine Reihe von Dateien mit Gruppen anstelle von Ordnern reorganisieren, gibt es weniger Möglichkeiten für Zusammenführungskonflikte in Ihrem tatsächlichen Quellcode, da die Dateien selbst nicht verschoben werden. Es gibt absolut wichtige Kompromisse zu beachten. –

48

Dies ist ein Haustier von mir.

Ich empfehle, den Ordner in Ihrem Dateisystem zu machen, in dem Sie Ihre Projektdateien haben, dann diesen Ordner in Xcode ziehen, wo Sie die Gruppe wollen. Es wird wie jede andere Gruppe funktionieren, aber jetzt mit dem Ordner im Dateisystem verknüpft sein. Das Hinzufügen von Dateien zu dieser Gruppe in Xcode fügt sie jetzt dem Ordner im Dateisystem hinzu.

Viele saubere Arbeitsweise und hilft, wenn Dateien in großen Projekten zu lokalisieren. Hält Git auch sauberer.

Update für Xcode 9:

Nachdem Sie die Gruppen in Xcode haben die Verzeichnisstruktur auf der Festplatte übereinstimmt, wird eine Datei von einer Gruppe zur anderen in Xcode bewegen sich nun die Datei korrekt auf der Festplatte übereinstimmen bewegen.

+1

+1, tolle Idee! – DGund

+18

Ich frage mich nur, warum Xcode beginnt nicht nur Ordner statt Gruppen verwenden? –

+1

Ja, es hält Git sauber :) – Malloc

8

Es gibt einen Befehl Line Tool - "synx" verfügbar in GitHub, die genau das tun, was Sie brauchen.

Es reorganisiert Xcode Projektordner in Finder Xcode Gruppen in einem Projekt zu entsprechen.

Sie können es hier finden: https://github.com/venmo/synx

+1

Wenn Sie vergessen haben, Ordner beim Hinzufügen einer neuen Gruppe zu erstellen, dann ist dies der beste Weg, xcode Gruppen in das Ordnersystem zu konvertieren –

Verwandte Themen