2011-12-05 4 views
0

내가, 내가 경우서브 클래 싱 후 대리인?

내가 위임 프로토콜과 속성 클래스를 서브 클래 싱 .. 제목에 대한 간단한 질문을 공식화 할 수 미안하지 않았다 해요, 내 대리인이 여전히 대리자 프로토콜을 구현해야합니까 또는 하위 클래스에 대해 새 클래스를 정의해야합니까? 내 경우

나는 UIImagePickerController를 서브 클래스 :

경고 : 시맨틱 문제 :

[(UIImagePickerController *)self.myUIImagePickerControllerSubclassInstance setDelegate:self]; 

나는 다음과 같은 경고가 일부 뷰 컨트롤러에서, self에 그 대리자를 설정하려고

보내기 'ViewController *'to 호환되지 않는 유형 'id'

답변

1

귀하의 대리인이 UIImagePickerController 속성 선언을 준수 할 필요가 (있는 경우) 메소드.

+0

감사합니다! 나는 그것을 보았고, 단지 UINavigationControllerDelegate를 뷰 콘트롤러에 추가했다. – bijan

0

예, 대리인은 수퍼 클래스와 호환되어야합니다. 예 :

이 프로토콜은 웹보기 위임자를 확장하므로 서로 호환됩니다.

@property (nonatomic, assign) id<UINavigationControllerDelegate, UIImagePickerControllerDelegate> delegate

그래서, 당신의 서브 클래스 인터페이스에 <UIImagePickerControllerDelegate>를 추가하려고 :

@interface YourPicker : UIImagePickerController <UIImagePickerControllerDelegate> 
... 
@end 

을 그리고 아마 당신이 UINavigationControllerDelegate이 필요합니다 및 필수 구현

+0

고맙습니다! 그래서 이들은 서브 클래스가 수퍼 클래스의 기존 서브 클래스에 추가하는 추가 위임 메소드입니다. 맞습니까? – bijan

+0

@bijan이 맞으면 수퍼 클래스가 정의하는 것을 추가합니다. –