Xcode는 C 및 Objective-C 코드 만 리팩터링 할 수 있습니다. Xcode 6에서 신속한 클래스 이름을 바꾸는 방법은 무엇입니까?


103

Xcode 6 베타 버전에서 새로운 Single View Application Project를 만들었습니다. 빠른 클래스의 ViewController.swift이름을 다른 이름 으로 바꾸고 싶습니다 . 그러나 Refactor-> Rename을 선택하면 오류가 발생 Xcode can only refactor C and Objective-C code합니다.

여기에 이미지 설명 입력

Xcode 6에서 신속한 클래스 이름을 바꾸는 방법에 대한 아이디어가 있습니까?

최신 정보:

마지막으로 Xcode 9는 Swift를위한 리팩토링을 지원합니다. 이 기본 기능을 추가하는 데는 3 년이 걸렸습니다. 리팩토링


9
현재는 없습니다. 버그를 신고 하세요.
jtbandes

19
이 질문을받은 지 1 년이 지난 후에도 유일한 답은 여전히 ​​수동 찾기 및 교체입니다! 믿을 수
없을 정도로 Apple의 뒤를 잇는이

1
AppCode는이 리팩토링을 수행 할 수 있습니다. .swift파일에 정의 된 클래스에 대한 2 단계 프로세스입니다 . 1. 클래스 이름을 선택하고 Refactor> Rename을 수행 합니다. 2. .swift파일을 선택하고 Refactor> Rename을 수행 합니다.
다니엘 장

5
2 년 후에도 !!! 구현되지 않음 ???
Milad Faridnia

복사 및 C에서 100 개 항목을 붙여하면서이 방법으로 실제로 좋다 옛날의 다시 추억을 제공합니다
LegendLength

답변:


25

Xcode6의 오른쪽에있는 File Inspector에서 클래스 이름을 변경할 수 있습니다.

  • 수업 시작
  • 파일 검사기> 식별 및 입력 섹션으로 이동합니다.
  • "이름"필드에서 기존 클래스의 이름을 바꿉니다.

그게 다야! 이전에는 클래스 파일에서 클래스 이름을 수동으로 변경했습니다.


11
답장 해주셔서 감사 합니다만, 파일 구조에서만 클래스 명을 변경합니다. 여전히 코드의 모든 곳에서 클래스 이름의 모든 인스턴스를 변경해야합니다. Refactor-> Rename ...을 사용하면 파일 구조와 코드에서 이름을 변경하는 데 사용됩니다.
Khawar 2014-06-10

문제 없어요! 나는 애플이이 문제를 해결하기 전까지는 일종의 해결책이라고 생각했다. 그날까지 찾기 및 바꾸기 기능도 사용할 수 있습니다. 어떤 경우 든 Refactor-> Rename에 내장 된 거의 동일한 작업을 수행합니다.
Newone

1
@Newone 같은 일을하지 않습니다. 예를 들어 찾기 및 바꾸기는 문자열 내부를 검색하며 Refactor-> Rename은 그렇게하지 않아야합니다.
Martin Epsz 2015

15

나는 Find> Find & Replace in Project 를 사용해 왔지만 완벽하지는 않지만 작동합니다.


12

이 방법으로 사용합니다.

  • 이름을 바꿀 변수에 커서를 놓을 수 있습니다.
  • 편집기 선택-범위 내에서 모두 편집 (^ ⌘E)
  • 변수 이름을 바꾸면 모든 변수 발생이 자동으로 편집됩니다.

이것은 도움이됩니다. 이걸 너무 오래 놓쳐서 놀랐습니다 !! :]
hdsenevi 2016

1
이것은 범위 내에서만 작동합니다. 즉, IIRC 파일에서는 작동하지 않습니다.
Steve Moser

10

이 튜토리얼에서.

iOS8 Swift 코드 분할

먼저 뷰 컨트롤러의 이름을 더 의미있는 이름으로 변경하겠습니다. ViewController.swift 파일을 열고 'ViewController'에 대한 모든 참조를 새 이름 'SearchResultsViewController'로 바꿉니다. 파일 이름도 SearchResultsViewController.swift로 변경합니다.

여기에서 앱을 실행하려고하면 충돌이 발생합니다. 이것은 우리의 스토리 보드 파일이 새 클래스에 대해 알도록 업데이트되지 않았기 때문입니다! 따라서 Main.storyboard를 열고 장면에서 'View Controller'개체 (왼쪽 탐색)를 선택한 다음 Identity Inspector (오른쪽, 세 번째 버튼)를 선택합니다.

여기에서 클래스를 'ViewController'에서 'SearchResultsViewController'로 변경해 보겠습니다. 이제 우리는 궤도로 돌아와야합니다. 프로젝트가 계속 작동하는지 확인하고 계속 진행하겠습니다.


답변 감사합니다. 나는 이미이 방법을 실험했다. 그러나 그것은 좋은 방법이 아닌 것 같습니다. 10 개의 클래스에서 ViewController.swift 객체를 사용하는 경우 모든 클래스에서 수동으로 이름을 변경해야합니다. :( 시간 그래서 고통스러운 많은 폐기물
Khawar

@ Khawar- 예, 맞습니다.하지만 지금은 다른 옵션이 없을 수도 있고 swift는 베타 버전입니다. :) 희망 사과 후 (목적 C를 ???) 다른 더 쉬운 방법을 찾을 것입니다 .. 그것에 대해 걱정하지 마십시오
iPatel

1
저는 버전 7.2 (7C68)를 사용하고 있으며 이름 변경 리팩토링은 여전히 ​​불가능합니다
Barbara R

7.3에서는 또한 불가능합니다.
ManiaChamp


2

Xcode 9

Xcode 9는 이제 Swift에서 이름 바꾸기를 지원합니다. 이것은 WWDC 2017에서 발표되었습니다.

여기에 이미지 설명 입력


감사합니다. Apple에게 감사하지만 이름 변경은 여전히 ​​작동하지 않습니다. 이제 Xcode가 충돌합니다.
kisileno

사실 ... 버전 9.0 베타에서 이름을 바꾸면 Xcode가 충돌합니다. 그러나 이것은에서 일을 해야하는 것입니다 미래의 그 :)있을 수 있습니다 때마다
가이 Daher
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.