2008-10-11 2 views
28

인터페이스를 구현할 클래스를 정의한 경우 Visual Studio에서 예 :Xcode에 프로토콜을 구현하기위한 키 조합이 있습니까?

class MyObject : ISerializable {} 

나는 상황에 맞는 메뉴에서 "인터페이스 구현"를 선택를 ISerializable을 오른쪽 클릭하고 적절한 방법 내 클래스 정의에 나타납니다 볼 수 있어요.

class MyObject : ISerializable { 
    #region ISerializable Members 
    public void GetObjectData(SerializationInfo info, 
       StreamingContext context) 
    { 
     throw new NotImplementedException(); 
    } 
    #endregion 
} 

Mac의 Xcode에서 사용할 수있는 기능이 있습니까? 이런 식으로 프로토콜을 자동으로 구현할 수 있기를 바랍니다. 어쩌면 선택적 메소드가 생성되었지만 주석 처리 된 것일 수 있습니다.

답변

6

Xcode에서이 기능을 보지 못했습니다. 하지만 Script> Code 안에 앉아있는 "Place Implementor Defs on Clipboard"라는 새로운 사용자 스크립트를 작성할 수있는 것처럼 보입니다.

당신은 이것을 유용하게 찾지 못했습니다.

+10

누가 유용하고 유용한 이유를 찾지 못했습니까? – nmr

5

현재 Xcode에는 리팩터링이 없습니다.

원한다면 enhancement request으로 신고하십시오.

0

Macrumors도 이에 대한 토론이있었습니다. 사과 스크립트 링크가 있습니다. 나는 실제로 이것을 시도하지 않았다. 당신은 ESC를 메소드의 이름을 쓰고 눌러 시작할 수 있습니다하는 .m 파일의 @implementation 부분에

@protocol PosterousWebsitesDelegate <NSObject> 
- (void)PosterousWebsitesLoadSuccess:(PosterousWebsites*)websites; 
@end 

:

은 엑스 코드 프로토콜 방식에 따라 당신을 도울 수
1

, 당신이이 같은 프로토콜을 가지고 말할 수 방법/선택기의 서명을 자동으로 완성 할 키

-(void)Poste (...press ESC...) 

엑스 코드는 @protocol 방법의 전체 서명을 자동으로 완성됩니다, 대가 TAB 코드를 확인합니다.

당신이 정말로 OSX/아이폰 OS 개발 내용을 커밋하는 경우에, 나는, "엑스 코드 (3)가 해방"읽기 정말 날 깊은 내가 VS :

+1

'-P (프레스 ESC)'(리턴 타입없이 - Xcode5는 여전히 올바른 셀렉터를 보여줄 것입니다.)를 쓰면 더 빨리 할 수 ​​있습니다. wwdc 비디오에서 Development_gems를 참조하십시오 ... – liefersfl

22

엑스 코드를 알고있는 엑스 코드를 알고하는 데 도움이 책을 추천 할 것입니다 현재 그러한 종류의 자동화는 지원하지 않습니다. 그러나 : 코드를 얻을 수있는 가장 쉬운 방법은 프로토콜을 부트 스트랩하는 것입니다 옵션을 클릭 빠르게 프로토콜을 정의하는 .H 파일을 열려면 클래스 선언

@interface FooAppDelegate : NSObject <NSApplicationDelegate, 
             NSTableViewDelegate> { 

에서 프로토콜 이름입니다. 그곳에서 관심있는 메소드를 복사하여 붙여 넣으십시오. 헤더는 잘 주석 처리되어있어 무시할 수있는 메소드를 결정하는 데 도움이됩니다.

+1

하지만 질문에 대답하지 않습니다. 그는 복사/붙여 넣기를 피하기 위해 키 조합을 추가 할 것인지 묻습니다. – lagos

+2

@lagos 클레이가 질문에 대답하고 있다고 생각합니다. 그는 대답이 "아니오"이며 대안을 제시한다고 말하고 있습니다. –

2

나는이 스레드가 약간 오래된 것을 알고 있지만 같은 것을 궁금해하고이 질문을 발견했습니다.

내 경우 인터페이스 (.h)에서 속성을 정의하고 구현 (.m)에서 합성하려고합니다. 또한 인터페이스에 정의 된 메서드를 구현해야합니다. 예, Xcode는 다른 사람들이 언급 한 것처럼 도움이되지만 현대 IDE는 우리가 자주하는 일에 대해 이러한 생산성 향상을 제공합니다. 이것이 Xcode 4.3.3의 기능은 아닙니다. 그러나이 기능은 JetBrains' AppCode에서 사용할 수 있습니다. 나는 재판을 고심 중이다. 그러나 Visual Studio와 같은 전체 인터페이스가 아니라 한 번에 하나의 속성이나 메서드 만 가능할 것으로 보인다.

관련 문제