2013-05-20 2 views
0

나는 UIViewController이라는 EditNoteViewController_iPad이며이 클래스의 범주는 EditNoteViewController_iPad (Operation)입니다.상위 클래스의 대표 클래스로 범주 클래스 설정

이 범주에는 몇 가지 대리인 메서드가 포함되어 있습니다.

내 setDelegate 메소드가 EditNoteViewController_iPad에 있습니다. 카테고리 클래스로 전송할 수 없습니다.

[Video setDelegate:self]; 

어떻게이 경고를 제거 할 수 있습니다 EditNoteViewController_iPad에 경고 표시

Sending 'EditNoteViewController_iPad *const __strong' to parameter of incompatible type 'id<ZNVideoViewDelegate>' 

라인 :

는 이제 다음과 같은 setDelegate 방법에 대한 경고는 무엇입니까?

내 프로젝트가 정상적으로 작동합니다. 이 경고를 그냥 제거하고 싶습니다.

+0

더 많은 코드가 필요합니다. 예 : 당신이 준수하려고하는 프로토콜 등등 ... – Fogmeister

+0

프로토콜은 사용자 정의입니다. 그 이름이 ZNVideoViewDelegate입니다. – CRDave

+0

그리고 set 문은 매우 간단합니다 [Video setDelegate : self]; – CRDave

답변

2

EditNoteViewController_iPad 클래스가 ZNVideoViewDelegate 프로토콜을 준수 함을 선언해야합니다. 귀하의 @interface 헤더에이 유사하게 나타납니다

@interface EditNoteViewController_iPad : UIViewController <ZNVideoViewDelegate> 
{...}              ^^^^^^^^^^^^^^^^^^^ 

편집가 : 당신이 범주에 프로토콜을 구현하는 경우, 당신은, 그래서 당신이 대리자를 설정 .m 파일에 해당 범주의 헤더를 가져올 필요 컴파일러는 클래스가 프로토콜을 준수 함을 알고 있습니다.

+0

답장을 보내 주셔서 감사합니다. 왜냐하면 EditNoteViewController_iPad.h 파일 대신 EditNoteViewController_iPad (Operation) 파일에서 를 사용해야하므로 클래스 클래스에 모든 델리게이트 메소드를 구현했기 때문입니다. – CRDave

+0

그리고 EditNoteViewController_iPad에서 를 사용하는 경우이 경고를 제거하고 "카테고리가 기본 클래스에서 구현할 메소드를 구현 중입니다" – CRDave

+0

다음에는 위임을 설정 한 범주의 헤더를 가져와야합니다 . – omz

관련 문제