Java, C++ 11 및 일부 다른 언어에서 메서드가 기본 클래스 또는 인터페이스의 다른 메서드를 재정의하도록 지정 될 수 있습니다. 나중에 해당 메서드를 제거하면 기본 클래스에서 컴파일러 오류가 발생합니다. 선택적 메서드를 많이 사용하는 프로토콜을 사용하고 거기에서 메서드를 제거하면 메서드를 구현 한 코드를 제거하는 것을 잊어 버릴 수 있습니다. 이것은 오류 또는 경고를 생성하지 않으므로 "죽은"방법을 만듭니다.Objective-C "Override"지정자
고려 : 한 지점에서 내가 프로토콜에서 tempBar
를 제거하면
@protocol Prot <NSObject>
@optional
- (void)bar;
- (void)tempBar;
@end
@interface MyType : NSObject <Prot>
@end
@implementation MyType
- (void)bar { /**/ }
- (void)tempBar { /**/ }
@end
것은, 나는 적어도 tempBar
에서 경고가 MyType
에서 구현되고 좀하고 싶습니다.
Objective-C에는 메서드가 프로토콜 메서드의 구현으로 예상되도록 지정하는 방법이 있습니까?