2012-12-17 4 views

답변

3

공식적 프로토콜을 준수하려면 이 경우 제 4 인수 인 class_addMethod())는를 참조하십시오. 10 추가 정보.

1

당신은 런타임에 클래스에 프로토콜을 추가하기 위해 오브젝티브 C 런타임 방법

BOOL class_addProtocol(Class cls, Protocol *protocol) 

를 사용할 수 있지만 내가 아는 한 당신은 그것을 제거 할 수 없습니다. (

// - (int)someMethod:(int)arg; 
int someMethod(id self, SEL _cmd, int arg) 
{ 
    return arg * 2; 
} 

class_addMethod([MyViewController class], @selector(someMethod:), (IMP)someMethod, "[email protected]:i"); 

메소드 서명을주의 :

class_addProtocol([MyViewController class], @protocol(SomeProtocol)); 

더욱 동적 :

class_addProtocol(objc_getClass("MyViewController"), objc_getProtocol("SomeProtocol")); 

실제로 클래스에 메소드 구현을 추가하려면

관련 문제