2012-01-06 2 views
3

MacRuby (및 Objective-C)를 처음 사용했습니다. 일부 코코아 문서를 읽으면서 프로토콜을 준수하는 대표를 언급하는 부분을 계속 접하게됩니다. 지금까지, 나는 내 AppDelegate을 대의원에 대해 말하는 것에 대한 프로토콜로 설정하고 있지만, 필요한 프로토콜을 따르고 있는지 확실하지 않습니다.MacRuby : 프로토콜 준수

프로토콜에 대해 알아야 할 사항과 응용 프로그램에서 프로토콜을 준수하려면 어떻게해야합니까?

답변

3

[공식] Objective-C 프로토콜이 필수 및/또는 선택적 방법을 정의하는 것을 포함하여 무엇인지 이해해야합니다. Apple의 Objective-C 문서를 참조하십시오. 프로토콜은 다중 상속의 제한된 형태로서 상태가 아닌 동작 만 상속됩니다. 다른 언어는 interface 또는 mix-in이라고 할 수 있습니다.

프로토콜을 준수한다는 것은 클래스가 모든 필수 메서드를 구현하고, 일부 또는 모든 선택적 메서드를 구현할 수 있음을 의미합니다.

일반적으로 대리인은 프로토콜을 사용합니다. 그것은 클래스가 델리게이트로부터 요구하는 API를 형식화하는 방법입니다. 주어진 위임 프로토콜의 경우 해당 API를 이해해야합니다. 특정 프로토콜에 관한 Apple 설명서를 참조하십시오.

마침내 MacRuby 클래스가 모든 프로토콜을 준수한다고 선언 할 필요가 없습니다. 클래스 인스턴스를 클라이언트 객체 델리게이트에 직접 할당 할 수 있습니다. 여전히 프로토콜을 준수해야하지만 컴파일 타임 검사는 없습니다. 규칙을 준수하지 못하면 런타임 예외가 발생할 수 있습니다. 아니면 이상한 행동. 또는 뭔가.

어쨌든 내 이해입니다.

+0

"프로토콜 준수"는 필요한 (또는 선택 사항 인) 방법을 정의하는 것과 같습니다. – Andrew

+0

(... MacRuby에 관한 한) – Andrew

+0

이것은 맞습니다. –