2011-01-12 2 views
2

목적 C에서 java의 interface와 동일한 개념은 무엇입니까? 인터페이스를 만들고 인터페이스에서 상속하는 여러 클래스에서 공유 할 몇 가지 공통 변수와 메서드를 정의하려고합니다. 외부 클래스가 자식 클래스를 사용하고자 할 때 올바른 자식 클래스를 가리키는 인터페이스의 참조 객체를 가져옵니다.런타임 다형성과 상속 구현

목표 C에서이를 달성하는 방법은 무엇입니까?

답변

5

Java 인터페이스와 동일한 Objective C는 "protocol"입니다.

작은 소개

here를 찾을 수 있습니다, 당신은 전체 참조를 원한다면, 그것은 at Apple

5

목표 - C에서, 당신은 Protocols를 이용하여이를 달성 할 수 있습니다. 프로토콜은 기본적으로 Java 인터페이스의 선구자이므로 대부분의 동작은 자연스럽게 이루어져야합니다.

프로토콜 선언은 다음과 같습니다 :

@protocol Foo 
-(void) foo; 
-(int) boo: (int) arg; 
@end 

이이 클래스에 의해 구현 될 수있다. 다음과 같은 경우에는 MyClass가 Foo 프로토콜을 준수한다고 말할 수 있습니다.

마지막으로
@interface MyClass <Foo> 
{ 
} 

@end 

@implementation MyClass 

-(void) foo { 
    //do something 
} 
-(int) boo: (int) arg { 
    //do something else 
    return arg; 
} 

@end 

,이처럼 주위를 전달할 수 있습니다

-(void) someMethod: (id<Foo>) arg; 

을 당신이 개체에 대한 구체적해야하는 경우, 그들은이처럼 사용할 수 있습니다 :

-(void) someMethod: (NSObject<Foo> *) arg;