Refactor … 가 Xcode에서 회색으로 표시 (비활성화) 된 이유는 무엇 입니까?
수업 이름을 바꾸고 싶습니다.
답변
헤더 파일에서 클래스의 심볼을 선택합니다 @interface
. 즉 . 그런 다음 리팩토링 항목을 활성화해야합니다.
답변
Objective-C ++를 사용하는 경우 (즉, Objective-C를 C ++ 코드와 혼합) xcode에서 C ++ 코드의 리팩토링을 지원하지 않으므로 리팩토링이 비활성화됩니다.
답변
영향을받는 파일 (대부분 클래스가있는 파일)이 저장되지 않은 경우 리팩터링이 비활성화 될 수도 있습니다.
답변
저는 Xcode를 5 년 동안 사용해 왔으며 리팩토링이 제대로 작동하지 않았습니다 (xcode 4.6에도 소스 코드를 손상시키는 주요 버그가 있습니다!).
해결 방법은 항상 (Apple의 코드가 실패하는 경우에도 여전히 100 % 작동합니다)
- 파일의 모든 용도를 찾으려면 shift-command-f를 사용하십시오.
- 검색 설정에서 “바꾸기”를 선택하십시오
- “전부 교체”
- .h 파일에 대해 다음을 수행하고 .m 파일에 대해 반복합니다 (있는 경우).
- 원본 파일을 마우스 오른쪽 버튼으로 클릭하고 “파인더에 표시”를 선택합니다.
- xcode에서 파일 삭제 (요청시 “참조 만 삭제”선택)
- Finder에서 .h (및있는 경우 .m) 이름 변경
- Xcode에서 “제품-> (Alt 누르고 있음)-> 빌드 폴더 정리”를 선택하십시오.
- xcode를 종료합니다 (보통이 작업을 수행하지 않아도 벗어날 수 있습니다. 그러나 참고 : Xcode에는이 작업을 수행하지 않으면 자체적으로 충돌하는 다른 주요 버그가 있습니다)
- xcode 다시 열기
- .h 및 .m을 Xcode로 다시 끌어다 놓습니다.
- 몇 초 기다리십시오 (Xcode의 핵심 메서드 중 일부는 비동기식이므로 프로젝트가 손상 될 수 있음)
- 마지막으로 아무 작업도하지 않는 것 같으면 (하드 디스크에서 더 이상 소음이 발생하지 않음) cmd-b to re-build
이 방법으로 성공률이 100 %입니다. 방금 최신 xcode에서 Apple의 “Refactor-> Rename”으로 리팩토링을 시도했지만 실패했습니다.
(이번에는 잘못된 오류 : “언어를 확인할 수 없음”, Apple이 잘못된 텍스트를 입력 한 오류 메시지 중 하나)
답변
finder에서 내 프로젝트로 이동 한 다음 정보 를 가져 와서 파일 이름을 변경합니다 .
그 후 xcode-> Project Navigator 에서 파일을 삭제합니다.
마지막으로 클래스를 마우스 오른쪽 버튼으로 클릭하고 파일을 … 에 추가하고이 파일을 다시 추가합니다.
그것은 나를 위해 일했습니다.
답변
저에게는 내가 열어 본 Xcode 프로젝트가 누락 된 Base SDK를 참조하고 있었기 때문에 Refactor가 비활성화되었음을 깨달았습니다. 프로젝트 설정을 편집하고 빌드 탭에서 기본 SDK를 보유하고있는 것으로 설정합니다 (예 : iOS 4.2). 이것은 나를 위해 리팩터링을 활성화했습니다.
답변
또한 xcode 외부에서 또는 Ctrl 키를 누른 채로 파일 이름을 클릭 한 다음 이름을 변경하여 클래스의 파일 이름을 변경할 수 있습니다. xcode는 파일 이름이 클래스 이름과 일치하지 않으면 리팩터링을 거부합니다.