2013-07-12 11 views
0

두 개의 클래스, 즉 CompletionView와 PauseView가 있습니다. 각 클래스에는 연결된 대리자가 있습니다. CompletionDelegate에 이미 returnHome이라는 함수가 있으며 PauseView 대리자에서 동일한 기능이 필요합니다. 내 질문은, 내가 중복 기능을 가진 두 가지 기능을 작성해야합니까? 또는 하나의 기능이 두 개의 프로토콜을 만족시킬 수 있습니까? 즉, CompletionDelegate와 PauseDelegate 모두 returnHome을 정의 할 수 있습니까?동일한 기능을 정의하는 두 명의 대표자?

+0

왜 안 되겠습니까? !!!! 가능합니다. – Tirth

답변

4

당신은 단지 외부 헤더에서 프로토콜을 정의 할 수 있습니다, 수입 CompletionView 및 PauseView에 대한 공통의 슈퍼 클래스를 생성하고 프로토콜을 정의하고 배치 할 수있는 CompletionView 및 PauseView, 만들고 위임 모두에 해당 외부 프로토콜을 기반으로합니다.

프로토콜이 반드시보기에 직접 연결될 필요는 없습니다.

this answer을 참조하십시오. 그러나 위임 메소드에 특별히 이러한 클래스가 필요하지 않은 경우 @class와 모든 것을 정의 할 필요조차 없습니다. returnHomeGeneralUseDelegate과 같이 정의하고 양쪽보기에서 해당 위임을 정의/사용할 수 있어야합니다.

@protocol GeneralUseDelegate 

- (void) returnHome; 

@end 

테스트하지 않았지만 왜 작동하지 않는지 상상할 수 없습니다.

+1

허용되는 답변보다 나은 답변입니다. – JonahGabriel

+0

그래, 이걸 대신 선택 했어. 내 의견을 읽으면, 내가 한 일이야. ModalDelegate를 만들고 클래스 별 함수를 선택적으로 만들었습니다. –

1

당신은 거기 위임 속성

+0

나는 비슷한 것을하고있다. 나는 ModalDelegate를 만들고 나서 둘 다 가져올 것입니다. –

관련 문제