Java、C++ 11およびその他の言語では、メソッドが基本クラスまたはインタフェースから別のメソッドをオーバーライドするように指定できます。後でそのメソッドを削除すると基本クラスからコンパイルエラーが発生します。私はオプションのメソッドをたくさん使ってプロトコルを使用しています。そこからメソッドを削除すると、そのメソッドを実装したコードを削除するのを忘れる傾向があります。これはエラーや警告を生成しないため、「死んだ」メソッドが作成されます。Objective-C「オーバーライド」指定子
を考えてみましょう:
@protocol Prot <NSObject>
@optional
- (void)bar;
- (void)tempBar;
@end
@interface MyType : NSObject <Prot>
@end
@implementation MyType
- (void)bar { /**/ }
- (void)tempBar { /**/ }
@end
を私は一点でのプロトコルからtempBar
を削除した場合、私はMyType
で実施さtempBar
から少なくとも警告を取得したいと思います。
Objective-Cにメソッドがプロトコルメソッドの実装であると指定する方法はありますか?