문제

저는 완전한 Xcode/Objective-C/Cocoa 초보자이지만 빠르게 배우고 있으며 새로운 언어, 플랫폼 및 패러다임을 익히는 것을 정말 즐기기 시작했습니다.

하지만 한 가지 문제는 오랫동안 R#과 함께 Visual Studio를 사용해 왔기 때문에 리팩토링 및 완성 등과 같은 코딩 도구에 푹 빠져 있었고 Xcode에서는 이에 대한 지원이 상당히 제한되어 있다는 것입니다. 물건.

참고로, 클래스 인터페이스 정의에서 구현 뼈대를 자동으로 생성하는 등 코딩 도우미를 추가하는 Xcode 환경에 사용할 수 있는 추가 기능이나 기타 항목이 있는지 아는 사람이 있습니까?

없는 것 같지만 물어보는 것이 도움이 될 수는 없다고 생각합니다.

도움이 되었습니까?

해결책

당신은 세 가지 주요 사항을 찾고 있는 것처럼 들립니다.코드 템플릿, 리팩토링 도구 및 자동 완성.

좋은 소식은 Xcode 3 이상에는 탁월한 자동 완성 및 템플릿 지원이 제공된다는 것입니다.기본적으로 Esc 키를 눌러 명시적으로 완료를 요청해야 합니다.(이것은 실제로 모든 분야에서 작동합니다. NSTextView에스;시도해 보세요!) 완성된 항목이 자동으로 표시되도록 하려면 다음으로 이동하세요. 환경설정 -> 코드센스 몇 초 후에 팝업이 자동으로 나타나도록 설정하세요.C 및 Objective-C 코드에 대한 좋은 완성과 C++에 대한 꽤 좋은 완성을 찾아야 합니다.

Xcode에는 사용할 수 있는 견고한 템플릿/골격 시스템도 있습니다.편집 -> 텍스트 매크로 삽입으로 이동하여 기본적으로 사용 가능한 템플릿을 확인할 수 있습니다.물론 마우스로 텍스트 매크로를 삽입하고 싶지는 않을 것입니다.그것은 요점을 무너뜨린다.대신 다음 두 가지 옵션이 있습니다.

  1. 다시 환경설정,이동 키 바인딩, 그런 다음 아래에서 메뉴 키 바인딩, 에서 자주 사용하는 매크로에 특정 단축키를 할당하세요.나는 개인적으로 이 작업을 귀찮게 하지 않지만, 그렇게 하는 훌륭한 Mac 개발자를 많이 알고 있습니다.
  2. 사용 CompletionPrefix.기본적으로 거의 모든 템플릿에는 특수 접두사가 있는데, 이를 입력한 후 Esc 키를 누르면 템플릿이 삽입됩니다.Ctrl-/를 사용하여 완성 필드 사이를 이동할 수 있습니다.

    너는 볼 수있어 Xcode의 기본 매크로 및 관련 매크로의 전체 목록 CompletionPrefix ~에 비뚤어진 스핀.

    자신만의 매크로를 추가하거나 기본값을 수정할 수도 있습니다.이렇게 하려면 파일을 편집하세요. /Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro.구문은 매우 친숙하지는 않더라도 설명이 필요해야 합니다.

불행하게도 R#에 중독되어 있다면 리팩토링 옵션에 실망하게 될 것입니다.기본 리팩토링은 상황에 맞는 메뉴를 통해 또는 Shift-Apple-J를 눌러 Xcode 내에서 제공됩니다.여기에서 메서드를 추출하고 이름을 바꿀 수 있으며 클래스 계층 구조를 통해 메서드를 승격 및 강등할 수 있으며 기타 몇 가지 일반적인 작업을 수행할 수 있습니다.안타깝게도 Xcode나 타사 유틸리티 모두 Resharper에 접근하는 기능을 제공하지 않으므로 현재 운이 좋지 않습니다.고맙게도 Apple은 이미 리팩토링 기능을 대폭 개선한 Xcode 버전을 시연했으므로 상황이 개선되기까지 너무 오래 기다리지 않아도 되기를 바랍니다.

다른 팁

JetBrains가 Objective-C 코더를 위한 괜찮은 IDE를 만들기로 결정했다는 소식을 전하게 되어 기쁩니다.

그것은 ~라고 불린다 앱코드 RubyMine 및 Resharper와 같은 다른 도구를 기반으로 합니다.네이티브 Cocoa는 아니지만 원시 리팩토링 기능이 풍부합니다.

http://www.jetbrains.com/objc/index.html

저는 이것을 주요 Objective C 프로젝트에 사용하기 시작했고 이미 사랑에 빠졌습니다.아직 초기 단계이지만 코드 편집 및 리팩토링 측면에서 이미 Xcode를 압도합니다.

업데이트

이제 완전히 사용할 수 있는 속도가 되었습니다.저는 풀타임으로 전환했지만 Xcode와 비교했을 때 리팩토링과 코딩이 얼마나 놀라운지 여전히 놀랍습니다.자동 가져오기, 거의 무한한 사용자 정의 등 많은 작업을 처리합니다.Xcode를 장난감처럼 보이게 만듭니다.

Xcode에는 C 및 Objective-C에 대한 리팩토링이 내장되어 있습니다.리팩토링하려는 항목을 선택하고 메뉴 표시줄이나 상황에 맞는 메뉴에서 "리팩터링..."을 선택하면 사용 가능한 리팩토링과 미리보기 영역이 포함된 창이 나타납니다.

Xcode에는 현재 공개 플러그인 API가 없습니다.Apple에서 활성화하기를 원하는 특정 유형의 플러그인이 있는 경우 다음에서 파일 향상 요청을 제출하세요. 버그 리포터.그렇게 하면 Apple이 그러한 요청을 계산하고 추적할 수 있습니다.

그러나 다음과 같은 타사 도구가 있습니다. 액세서라이저 그리고 mogenerator (최신 릴리스는 mogenerator 1.10)를 사용하여 다양한 개발 작업을 더 빠르게 수행할 수 있습니다.Accessorizer는 클래스에 대한 접근자 메서드를 생성하는 데 도움이 되며, mogenerator Xcode의 모델링 도구를 사용하여 모델링된 Core Data 관리 개체 클래스에 대한 고급 코드 생성을 수행합니다.

사람들이 알듯이, 액세서라이저 단지 접근자(1.0 및 2.0의 속성 모두)를 생성하는 것 이상을 수행하며 비표준 속성을 유지하기 위한 핵심 데이터 코드, 사용자 정의 대다 관계를 위한 NSSet 접근자를 생성합니다.

사실은, 액세서라이저 init, keypath, keyed-archiving, indexed 접근자, NSSet, copyWithZone, KVO, 키 검증, 싱글톤 재정의, dealloc, setNilForKey, 비표준 속성 지속성(핵심 데이터)과 같은 순서가 지정되지 않은 컬렉션에 대한 접근자를 제공하는 데 도움이 됩니다. 잠금, headerdoc, 메소드를 선택기로 변환, NSUndoManager 메소드 등.

Xcode.app 패키지에서 일부 xtmacro 파일을 찾았습니다./Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources

Xcode 버전이 설치되었습니다.3.2.5.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top