2010-03-06 4 views
21

나는이 같은 목표 - C에서 프로토콜, 뭔가가 있습니다Objective-C 프로토콜 정적 메서드?

@protocol Handler 
+(NSString*) getValue; 
@end 

그래서 지금은이 프로토콜을 상속 인스턴스가 있다고 가정을하고 나는이 메서드를 호출 할 :

[handlerInstance getValue]; 

이주는 getValue 메서드는 인스턴스 메서드가 아니기 때문에 경고가 표시됩니다. 내 인스턴스에서이 메서드를 제대로 호출하려면 어떻게해야합니까? (구체적인 수업을 모른 채)? 나는 이런 식으로 뭔가를 추측하고있어,하지만 난 정확히 모르겠어요 : 같은

[[handlerInstance class] getValue]; 

답변

20
[[handlerInstance class] getValue]; 

예.

Java 및 C++과 달리 클래스 메서드은 클래스에만 전송할 수 있습니다.

+0

진지하게, 나는 두 번째가 나 자신을 추측해서는 안된다 고 생각한다! – Kyle

+4

우리 모두는 아닙니다. 게시하기 전에 그것을 시도하는 것은 다른 사람들에게 지식의 이익을주지 않습니다. 나는 이것이 어떻게 행동 할 것인가를 찾기 위해 여기에왔다. 왜냐하면 1. 그것을 시험해 보는 것보다 더 빠르다. 2.) 내가 생각하지 않은 함정이 있다면, 누군가는 아마도 여기에 주목할 것이다. 그러므로 먼저 게시하는 것은 나중에 오는 모든 사람에게 더 적은 작업입니다. Kenny와 Zenox에게 감사합니다. – Warren

+1

그래서 변수'id handler'가 있다면'instance' 또는'[instance class]'를 할당합니까? 인스턴스가 없어도이 작업이 가능합니까? ('Class' 만)? – chakrit