Zmień nazwę lub refaktoryzację plików w Xcode


Odpowiedzi:


170

Najbezpieczniejszym sposobem zmiany nazw plików jest refaktoryzacja nazwy klasy za pomocą polecenia „Refactor” Xcode . Użycie tego polecenia zapewnia, że ​​kod jest również aktualizowany wszędzie tam, gdzie odwołuje się do pliku lub klasy (w tym do NIB).

Kliknij prawym przyciskiem myszy nazwę klasy w .hpliku interface ( ), wybierz Refactor->Rename, a Xcode poprowadzi Cię przez proces, umożliwiając podgląd zmian przed ich zatwierdzeniem.

Więcej szczegółów:

Kliknij prawym przyciskiem myszy nazwę klasy (po @interface) i wybierz Refactor-> Rename. Na przykład kliknij prawym przyciskiem myszy ViewControllerw tym kodzie:

@interface ViewController : UIViewController

wprowadź opis obrazu tutaj

Wpisz nową nazwę zajęć:

wprowadź opis obrazu tutaj

Xcode pozwoli ci przejrzeć zmiany przed zatwierdzeniem.

wprowadź opis obrazu tutaj

Możesz także zaznaczyć nazwę klasy i użyć Edit->Refactormenu Xcode , a nawet zamapować ją na skrót klawiaturowy, jeśli chcesz.

Jeśli faktycznie chcesz zmienić nazwę pliku bez wpływu na kod, kliknij nazwę w panelu Nawigator (lewy panel), odczekaj sekundę, a następnie kliknij ponownie. Nazwa zostanie podświetlona i możesz wpisać nową. Możesz także usunąć z Nawigatora, zmienić nazwę pliku w Finderze i ponownie dodać go do projektu.


1
Takie podejście jest najlepsze, ponieważ spowoduje zmianę nazw instancji klas przechowywanych w innych plikach lub plikach XIB.
Kendall Helmstetter Gelner

Wydaje się, że to nie działa, odkąd zaktualizowałem do 4.3. W pliku nagłówkowym (.h) XCode skarży się, że plik nie jest dodawany do celu - czego nie powinien, ponieważ jest to plik nagłówkowy. Jeśli spróbujesz w pliku .m, narzeka, że ​​nie jest to symbol (klasa, funkcja itp.)
Michael,

@Michael Czy próbowałeś tego w projekcie testowym? Nie zainstalowałem 4.3, ale wygląda na to, że działa dobrze na 4.2 (właśnie próbowałem).
nevan king

Czy ktoś wie, gdzie mogę znaleźć powiązany kod źródłowy, jeśli jest to open source? Myślę, że użyli narzędzi clang do implementacji funkcji refaktoryzacji, jest kilka dobrych interfejsów do takiej funkcjonalności, ale nie znalazłem kodu źródłowego.
BergP

Niestety powoduje to awarię mojego Xcode. Używam Yosemite Beta, więc może to być powód. Ufnie.
CGTheLegend

51

Works for Xcode 4.2.1: wybierz plik w nawigatorze projektu (domyślny lewy panel) i naciśnij [tab]


Dzięki. Refactor-> Rename nie działało z plikami C ++. To zadziałało.
BlueVoid

4
Myślę, że ta odpowiedź jest bardziej zasługująca na akceptację niż obecna. +1
Morgan Wilde

Działa również z XCode 11
Kesha Antonov

3

Domyślnie Xcode zmieni nazwę pliku, gdy zmienisz jego nazwę w nawigatorze plików (widok konspektu po lewej stronie) lub gdy użyjesz inspektora.


Cześć, chciałbym zmienić nazwę protokołu (SideToolBarDelegate.h) na ToolBarDelegate.h, ale xcode mówi do mnie: „SideToolBarDelegate.h jest importowany lub dołączany przez plik, który jest Objective-C ++, a nie Objective-C lub C:” . Jak mogę zmienić jego nazwę? Dzięki
samir

po prostu zamień go w jednym pliku (SideToolBarDelegate.h), ale chcę zastąpić tę nazwę w całym projekcie, podobnie jak funkcja refaktoryzacji.
samir

shift-cmd-F, wyświetl małe opcje, aby „znaleźć i zamienić”. Znajdź i zamień ...
bbum

Nie zapomnij zmienić nazw rzeczy na powiązane nazwy: Body, BodiesViewController, interactingBodies - Ścisłe „znajdź i zamień” nie złapie drugiego ani trzeciego.
willc2

2

W jedną stronę : wybierz plik, którego nazwę chcesz zmienić, a następnie naciśnij Tab. Przeważnie tego używam, jednak Xcode czasami nie zmienia nazwy. Więc czym bym wtedy był

Innym sposobem : wybierz plik. Otwórz obszar inspektorów (w prawym górnym rogu). A następnie otwórz Inspektora plików . Znajdziesz tam pole nazwy, w którym możesz edytować nazwę pliku. (Zobacz zrzut ekranu).

wprowadź opis obrazu tutaj


1

Xcode 11.6, próba zmiany nazwy „foo.cpp” na „bar.cpp” nie działa przy użyciu powyższych metod. opcja REFACTOR jest wyszarzona. Zamiast tego wykonaj następujące czynności:

  • W przeglądarce projektu znajdź plik, którego nazwę chcesz zmienić, np. Foo.cpp
  • Kliknij prawym (dwoma palcami) na foo.cpp
  • Wybierz „Pokaż w Inspektorze plików”

Po prawej stronie ekranu pojawi się inspektor plików.

  • W polu Nazwa wpisz nową nazwę pliku i naciśnij klawisz ENTER

0

Jeśli ręcznie zmieniłeś nazwę pliku i użyłeś funkcji Znajdź i zamień, aby zmienić nazwę klasy, upewnij się, że plik został dodany do źródeł kompilacji w fazach kompilacji celu, ponieważ prawdopodobnie zostanie usunięty.


0

Wybierz Refactor-> Rename nevan king Odpowiedź działa również dobrze na Xcode w wersji 7.0 beta (7A120f)


To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy zdobędziesz wystarczającą reputację , będziesz mógł skomentować każdy post .
Mayank Jain

Ponieważ nie mam 50 punktów reputacji. Oto, co zamieszczam odpowiedź na odpowiedź.
Carlos Chang
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.