메시지 작성보기 컨트롤러 (MFMessageComposeViewController
)를 표시하고 메시지가 전송/취소/실패되었는지 확인하기 위해 모든보기 컨트롤러가 MFMessageComposeViewControllerDelegate
메서드를 처리 할 수 있어야합니다. 그래서 내 생각은 UIViewController
이 뷰 컨트롤러에서 이러한 메서드를 서브 클래 싱하는 것이었다. 그런 다음 위의보기 컨트롤러를 하위 클래스로 메시지를 보낼 수 있어야하는 모든보기 컨트롤러를 갖게합니다.iOS - 코드 중복 및 프로토콜을 피하기 위해 서브 클래스 만들기
@protocol MessageProcessing
@required
- (void)presentMessageCompose;
- (void)processMessageCancelled;
- (void)processMessageSent;
- (void)processMessageFailed;
@end
: 나는 그것을 때
그래서
... 등등 BaseMessageViewController : UIViewController
그리고 ViewController1 : BaseMessageViewController
, ViewController2 : BaseMessageViewController
와 같은, 나는이 같은 프로토콜을 만들 것이라고 생각 그러나 BaseMessageViewController
이이 프로토콜을 준수해야하는지 또는 내 "구체적인"보기 컨트롤러가이를 준수해야하는지 확실하지 않습니다.
하나의 생각은 내 BaseMessageViewController
이 준수하면 클래스 뷰 상속 때문에 내 구체적인보기 컨트롤러가 자동으로 준수하게됩니다. 그러나 필자는 구체적인 뷰 컨트롤러에서 필요한 메서드를 구현하지 않는다는 경고를 보지 않습니다. 이러한 프로토콜을 정의 할 이유가 없다, BaseMessageViewController
자체에 보내는 메시지 경우
Java로 할 수있는 방법과 같은 메서드를 재정의하는 방법을 찾고 있습니다. 수퍼 클래스에 몇 가지 메서드를 선언 한 다음 하위 클래스에서 메서드를 직접 구현할 수 있습니다 (원하는 경우). 수퍼 클래스에서 선언되거나 수퍼 클래스 메서드를 사용하도록 남겨 둡니다. –
KVO를'BaseMessageViewController'에 추가하여 모든 뷰 컨트롤러가'BaseMessageViewController'에 설정된 속성에 대해 KVO를 갖도록 할 수 있습니까? –