Benennen Sie Dateien in Xcode um oder überarbeiten Sie sie

80

Ist es möglich, eine Klassendatei umzubenennen / umzugestalten und die eigentliche Datei auf der Festplatte umzubenennen? Wenn ja, wie kann ich das machen?

Sheehan Alam
quelle

Antworten:

169

Der sicherste Weg, Dateien umzubenennen, besteht darin, den Klassennamen mit dem Xcode-Befehl "Refactor" umzugestalten . Mit diesem Befehl stellen Sie sicher, dass Ihr Code auch an einer beliebigen Stelle aktualisiert wird, die auf die Datei oder die Klasse verweist (einschließlich NIBs).

Klicken Sie mit der rechten Maustaste auf den Klassennamen in der .hDatei interface ( ), wählen Sie Refactor->Rename, und Xcode führt Sie durch den Vorgang, sodass Sie eine Vorschau der Änderungen anzeigen können, bevor Sie sie übernehmen.

Mehr Details:

Klicken Sie mit der rechten Maustaste auf den Klassennamen (nach @interface) und wählen Sie Refactor-> Rename. Klicken Sie zum Beispiel mit der rechten Maustaste ViewControllerin diesen Code:

@interface ViewController : UIViewController

Geben Sie hier die Bildbeschreibung ein

Geben Sie den neuen Namen für die Klasse ein:

Geben Sie hier die Bildbeschreibung ein

Mit Xcode können Sie die Änderungen überprüfen, bevor Sie sie festschreiben.

Geben Sie hier die Bildbeschreibung ein

Sie können den Klassennamen auch markieren und das Xcode- Edit->RefactorMenü verwenden oder ihn bei Bedarf sogar einer Tastenkombination zuordnen.

Wenn Sie die Datei tatsächlich umbenennen möchten, ohne dass sich dies auf den Code auswirkt, klicken Sie im Navigatorbereich (linker Bereich) auf den Namen, warten Sie eine Sekunde und klicken Sie dann erneut. Der Name wird hervorgehoben und Sie können einen neuen eingeben. Sie können auch aus dem Navigator löschen, die Datei im Finder umbenennen und erneut zu Ihrem Projekt hinzufügen.

Nevan König
quelle
1
Dieser Ansatz ist am besten geeignet, da Klasseninstanzen in anderen Dateien oder XIB-Dateien umbenannt werden.
Kendall Helmstetter Gelner
Dies scheint nicht zu funktionieren, da ich auf 4.3 aktualisiert habe. In der Header-Datei (.h) beschwert sich XCode, dass die Datei nicht zu einem Ziel hinzugefügt wird - was es nicht sein sollte, da es sich um eine Header-Datei handelt. Wenn Sie in der .m-Datei versuchen, beschwert es sich, dass es kein Symbol (Klasse, Funktion usw.) ist
Michael
@ Michael Hast du es bei einem Testprojekt versucht? Ich habe 4.3 nicht installiert, aber es scheint in 4.2 in Ordnung zu sein (habe es gerade ausprobiert).
Nevan King
Weiß jemand, wo ich verwandten Quellcode finden kann, wenn es Open Source ist? Ich denke, dass sie Clang-Tools für die Implementierung der Refactoring-Funktion verwendet haben. Es gibt einige gute Schnittstellen für solche Funktionen, aber ich habe den Quellcode nicht gefunden.
BergP
Leider stürzt mein Xcode dadurch ab. Ich verwende Yosemite Beta, das könnte der Grund sein. Hoffnungsvoll.
CGTheLegend
51

Funktioniert für Xcode 4.2.1: Wählen Sie die Datei im Projektnavigator aus (Standard links) und drücken Sie [Tab]

Dave
quelle
Vielen Dank. Refactor-> Rename funktionierte nicht mit C ++ - Dateien. Das hat funktioniert.
BlueVoid
4
Ich denke, diese Antwort verdient mehr Akzeptanz als die aktuelle. +1
Morgan Wilde
Funktioniert auch mit XCode 11
Kesha Antonov
3

Standardmäßig benennt Xcode eine Datei um, wenn Sie sie entweder im Dateinavigator (linke Gliederungsansicht) umbenennen oder wenn Sie den Inspektor verwenden.

bbum
quelle
Hallo, ich möchte ein Protokoll (SideToolBarDelegate.h) mit ToolBarDelegate.h umbenennen, aber xcode sagt mir: "SideToolBarDelegate.h wird von einer Datei importiert oder eingeschlossen, die Objective-C ++ ist, nicht Objective-C oder C:" . Wie kann ich es bitte umbenennen? Danke
Samir
es ersetzt es nur in einer Datei (SideToolBarDelegate.h), aber ich möchte diesen Namen in allen Projekten ersetzen, wie die Refactoring-Funktion.
Samir
Umschalt-cmd-F, öffnen Sie die kleinen Optionen, um "zu finden und zu ersetzen". Finden und ersetzen ...
bbum
Vergessen Sie nicht, Dinge mit verwandten Namen umzubenennen: Body, BodiesViewController, interagingBodies - Ein striktes „Find & Replace“ würde den 2. oder 3. nicht fangen.
Willc2
2

Einweg : Wählen Sie die Datei aus, die Sie umbenennen möchten, und drücken Sie dann Tab. Ich benutze dies meistens, aber Xcode kann es manchmal nicht umbenennen. Also was ich dann wäre

Ein anderer Weg : Wählen Sie die Datei aus. Öffnen Sie den Inspektorbereich (oben rechts). Öffnen Sie dann den Dateiinspektor . Dort finden Sie das Namensfeld, in dem Sie den Dateinamen bearbeiten können. (Siehe Screenshot).

Geben Sie hier die Bildbeschreibung ein

Kareem Jeiroudi
quelle
1

Xcode 11.6, der Versuch, "foo.cpp" in "bar.cpp" umzubenennen, funktioniert mit den oben genannten Methoden nicht. Die Option REFACTOR ist ausgegraut. Gehen Sie stattdessen wie folgt vor:

  • Suchen Sie im Projektbrowser die umzubenennende Datei, z. B.: Foo.cpp
  • Klicken Sie mit der rechten Maustaste (2finger) auf foo.cpp
  • Wählen Sie "Im Dateiinspektor anzeigen".

Auf der rechten Seite des Bildschirms wird der Dateiinspektor angezeigt.

  • Geben Sie im Feld Name Ihren neuen Dateinamen ein und drücken Sie die EINGABETASTE
user3696153
quelle
0

Wenn Sie eine Datei manuell umbenannt und den Klassennamen mit Suchen und Ersetzen umbenannt haben, stellen Sie sicher, dass die Datei zu Kompilierungsquellen in Erstellungsphasen Ihres Ziels hinzugefügt wird, da sie wahrscheinlich entfernt wird.

jclv
quelle
0

Wählen Sie Refactor-> Umbenennen. Die Antwort von nevan king funktioniert auch in Xcode Version 7.0 Beta (7A120f).

Carlos Chang
quelle
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. Sie können jederzeit Ihre eigenen Beiträge kommentieren. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren .
Mayank Jain
Weil ich keinen Ruf habe. Das ist es, was ich eine Antwort auf eine Antwort poste.
Carlos Chang