2014-11-11 5 views
0

특정 프로토콜을 확인하지 않는 클래스가 있습니다.클래스에 프로토콜을 선택적으로 추가하기

xyzClass : UIVIewController <> 이제 해당 클래스의 한 인스턴스에서 해당 프로토콜을 사용하고 싶습니다.

xyzClass : UIViewController에

어떻게 실행 시간에 추가 할 수 있습니다 ? 또는 다른 제안?

답변

2

당신은

@protocol <...> NSObject 
@required 
(required methods here) 
@optional 
(optional methods here) 
@end 

그냥 그 선택을 테스트해야 선택 프로토콜 방법 (들)을 만들 수있는 것은 응답 :

if ([delegate respondsToSelector:@selector(didDoSomething)]) 
{ 
    [delegate didDoSomething] 
} 
1

당신은 하나 개의 인스턴스 만의 프로토콜을 사용하려는 경우, 당신이 할 수있는 대리자 속성 및 프로토콜 메서드를 옵션으로 선언합니다. 하나의 인스턴스에서 delegate 속성은 nil이고 다른 하나는 속성을 인스턴스화합니다. 으로 RegularExpression이 대리자 (첫 번째 경우를) 인스턴스화 할 경우

if (self.delegate && [self.delegate respondsToSelector:@selector(didSomething)]) 
{ 
    [self.delegate didSomething]; 
} 

그래서, 앱이 충돌하지 않습니다 말했듯이

당신은 프로토콜의 메소드를 선언해야합니다.

관련 문제