2015-11-03 13 views
39

Gibt es eine Möglichkeit, Swift in Xcode 7.1 zu refactor? Wenn ich versuche, eine Variable umzubenennen (z. B. Hervorhebung, Rechtsklick, Umgestaltung -> Umbenennen), öffnet Xcode einen Fehlerdialog mit der Aussage "Swift-Code kann nicht refaktoriert werden. Xcode kann nur C- und Objective-C-Code umgestalten." Gibt es einen Workaround dafür?Wie refactor schnell in Xcode?

+5

Derzeit können Sie nicht. Ähnliche Frage hier: http://stackoverflow.com/questions/24133664/xcode-can-only-refactor-c-and-objective-c-code-how-to-rename-swift-class-name-i. –

+29

Es ist irreführend, dass eine große IDE 2016 eine so grundlegende Aufgabe wie Refactoring nicht bewältigen kann. 1995 konnte ich mit Visual Basic 3 umgestalten. – MusiGenesis

+5

Gleiches Problem weiter zu Xcode 8. :( – Shad

Antwort

80

AFAIK das Refactoring nicht funktioniert jetzt mit Swift, aber zumindest in der gleichen Datei (scope), können Sie Folgendes tun: die Refactoring-Tools enter image description here

+9

Wie hat Sie nehmen Ihren Bildschirm auf? – Mohamad

+9

@Mohamad Wirh LICEcap –

+2

Ich bin sehr gespannt auf „echten“ Refactoring suchen, die in Xcode zu Swift eingeführt. Bis dahin ist dies bei weitem die beste Lösung, die ich gesehen habe! Danke @ Dániel Nagy – NikMos

2

Ab Xcode 7.2 Beta nicht unterstützen Schnell.

Was ich tue, ist die Art Prüfung verwenden. Ändern Sie den Namen/Typ von etwas und beheben Sie dann alle Kompilierungsbrüche. Aufgrund der starken Tipparbeit können Sie mehr Vertrauen haben, dass dieser Ansatz alles fängt. Ich habe zeitweise absichtlich Dinge geändert und sie vorübergehend unterbrochen, um zu überprüfen, wo Objekte oder Typen verwendet werden oder von welchen aus zugegriffen wird.

Oder AppCode für das Refactoring verwenden, wie ich höre, es ist gut, aber noch nicht versucht, mich viel.

6

Der Mangel an Refactoring ist erstaunlich (vor allem, da ich aus einer großen Stint komme VS verwenden) Allerdings habe ich gerade bemerkt, dass jemand etwas dagegen getan hat. Auf GitHub ist es Refactorator Xcode Plugin (MIT-Lizenz), die behauptet:

Refactorator ist eine Xcode-Plugin für Swift Refactoring & jetzt Objective-C-Code. Es wird öffentliche oder interne Vars, Funktionen umbenennen, Aufzählungen usw. Für den privaten und lokalen Einheiten verwenden Xcode bestehenden „Edit Alles in Scope“ Funktionalität.

vollständige Offenlegung ist, dass ich nichts mit ihnen zu tun haben, und bin nur über das Produkt selbst zu installieren.

+0

Ich hatte kein Glück damit. Um beispielsweise eine Variable umzubenennen, kann sie am meisten, aber nicht alle Verwendungen aufnehmen (warum?) - find and replace erhält 100%. Ich war nicht beeindruckt. –

8

Xcode 9

Xcode 9 unterstützt jetzt refactoring in Swift. Das in der WWDC angekündigt wurde 2017.

enter image description here