2010-06-17 13 views

Odpowiedz

154

Najbezpieczniejszym sposobem zmiany nazwy plików jest refaktoryzacja nazwy klasy za pomocą Komendy Xcode "Refaktor". Użycie tego polecenia powoduje, że twój kod jest również aktualizowany w dowolnym miejscu, który odwołuje się do pliku lub klasy (w tym NIB).

Kliknij prawym przyciskiem myszy nazwę klasy w pliku interfejsu (.h), wybierz opcję , a Xcode przeprowadzi Cię przez proces, umożliwiając podgląd zmian przed ich zatwierdzeniem.

Więcej szczegółów:

prawym przyciskiem myszy na nazwę klasy (po @interface) i wybierz Refactor-> Zmień nazwę. Na przykład, kliknij prawym przyciskiem myszy na ViewController w tym kodzie:

@interface ViewController : UIViewController 

enter image description here

Wprowadź nową nazwę dla klasy:

enter image description here

Xcode pozwoli Ci przejrzeć zmiany, zanim zdecydują .

enter image description here

Można również podświetlić nazwę klasy i używać Edit->Refactor menu Xcode, albo nawet mapować do skrótu klawiatury, jeśli chcesz.

Jeśli rzeczywiście chcesz zmienić nazwę pliku bez wpływu na żaden kod, kliknij nazwę w panelu nawigatora (lewe okienko), odczekaj chwilę, a następnie kliknij ponownie. Nazwa zostanie podświetlona i możesz wpisać nową. Możesz również usunąć z Nawigatora, zmienić nazwę pliku w Finderze i ponownie dodać go do projektu.

+0

To podejście jest najlepsze, ponieważ zmieni nazwę instancji klas przechowywanych w innych plikach lub plikach XIB. –

+2

człowiek - chciałem wiedzieć, jak to zrobić na wieki! – roocell

+0

Wygląda na to, że nie działa, odkąd zaktualizowałem się do wersji 4.3. W pliku nagłówkowym (.h) XCode skarży się, że plik nie został dodany do celu - który nie powinien być, ponieważ jest plikiem nagłówkowym. Jeśli spróbujesz w pliku .m, narzeka, że ​​nie jest to symbol (klasa, funkcja itp.). – Michael

3

Domyślnie Xcode zmieni nazwę pliku podczas zmiany jego nazwy w nawigatorze plików (widok z lewej strony konspektu) lub podczas korzystania z inspektora.

+0

Witam, chciałbym zmienić nazwę protokołu (SideToolBarDelegate.h) z ToolBarDelegate.h, ale Xcode mówi dla mnie: "Program SideToolBarDelegate.h jest importowany lub dołączany do pliku, który jest Objective-C++, a nie Objective-C lub C:". Jak mogę zmienić nazwę to proszę? Dzięki – samir

+0

Znajdź i zamień. – bbum

+0

Przykro mi, nie działa. – samir

41

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

+0

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

+4

Myślę, że ta odpowiedź jest bardziej zasłużona na bycie akceptowaną niż obecną. +1 –

+0

Idealny. Dzięki – Shaun

0

Jeśli zmieniono nazwę pliku ręcznie, a stosowany znaleźć i zamienić się zmienić nazwę klasy , upewnij się, że plik został dodany do źródeł kompilacji w fazie budowania celu, ponieważ prawdopodobnie zostanie usunięty.

0

Wybierz Refactor-> Zmień nazwę odpowiedź nevan króla jest również działa dobrze na Xcode 7.0 beta (7A120f)

+0

Nie zapewnia to odpowiedzi na pytanie. Aby skrytykować lub poprosić o wyjaśnienie od autora, zostaw komentarz pod swoim postem - zawsze możesz komentować swoje posty, a gdy już masz wystarczającą [reputację] (http://stackoverflow.com/help/whats-reputation), być w stanie [komentować dowolny wpis] (http://stackoverflow.com/help/privileges/comment). –

+0

Ponieważ nie mam 50 punktów reputacji. Tak właśnie zamieszczam odpowiedź na odpowiedź. –