Dlaczego Refactor ... jest wyszarzony (wyłączony) w Xcode?
Chciałbym zmienić nazwę klasy.
iphone
xcode
refactoring
Elliot
źródło
źródło
Jeśli używasz Objective-C ++ (tj. Mieszasz Objective-C z kodem C ++), refaktoryzacja jest wyłączona w xcode, ponieważ nie obsługuje refaktoryzacji kodu C ++.
źródło
Refaktoryzacja może być również wyłączona, jeśli pliki, których dotyczy problem (najprawdopodobniej plik z twoją klasą) nie zostaną zapisane.
źródło
Używam Xcode od 5 lat i refaktoryzacja nigdy nie działała poprawnie (nawet xcode 4.6 zawiera poważne błędy, które spowodują uszkodzenie twojego kodu źródłowego!).
Obejście zawsze było (nadal działa w 100%, nawet w przypadkach, gdy kod Apple zawodzi)
Mam 100% skuteczność tej metody. Właśnie próbowałem refaktoryzacji za pomocą programu Apple „Refactor -> Rename” w najnowszym xcode i znowu się nie udało!
(tym razem z nieprawidłowym błędem: „Nie można określić języka”, jeden z tych komunikatów o błędach, w których Apple wstawił niewłaściwy tekst)
źródło
Idę do mojego projektu w Finderze, a następnie zmieniam nazwę pliku, uzyskując informacje .
Następnie w xcode -> Project Navigator usuwam pliki.
Na koniec klikam prawym przyciskiem myszy klasę i dodaję pliki do ... i ponownie dodaję te pliki.
U mnie to zadziałało.
źródło
Zdałem sobie sprawę, że Refactor jest wyłączony, ponieważ projekt Xcode, który otworzyłem, odwoływał się do brakującego zestawu Base SDK. Edytuj ustawienia projektu i na karcie Kompiluj ustaw podstawowy zestaw SDK na taki, który masz (jak dla mnie był to iOS 4.2). To umożliwiło mi Refactor.
źródło
Może się również zdarzyć, że zmieniono nazwę pliku dla klasy, albo poza xcode, albo przez kliknięcie, przytrzymując klawisz Ctrl, nazwę pliku, a następnie zmianę nazwy. xcode odmawia refaktoryzacji, jeśli nazwa pliku nie zgadza się z nazwą klasy.
źródło
Przejdź do pliku nagłówkowego swojej klasy i znajdź wiersz, który wygląda podobnie do tego:
Kliknij prawym przyciskiem myszy symbol klasy (np. YourClassName) i powinieneś być w stanie wybrać Refactor -> Rename ...
Właśnie tego spróbowałem i działa w Xcode 5.
źródło
Miałem też ten problem. Pobiegłem przez próbę znalezienia brakujących SDK, zapisywania plików i szukania kodu Objective-C ++, jak wspomniano powyżej, a wszystko, co było potrzebne, aby naprawić moją maszynę, to ponowne uruchomienie XCode.
Wydaje się, że wciąż jest trochę wadliwy.
BTW, to było dla XCode 4.0.1
źródło
Refaktoryzacja działa, jeśli najpierw zmienisz nazwę pliku w nawigatorze projektu.
źródło