2

あるが、AwesomeClassその実装を変更できないとします (つまり、静的ライブラリまたはフレームワークからのものです)。AwesomeClass以外は全部好きです- (void)thatOneBadMethod。私はサブクラス化して空の実装でそのメソッドをオーバーライドAwesomeClassすることができます (を呼び出さない) が、問題は、私の仲間の開発者が使用していて、私のアクションを認識していない場合、彼は何かをしていると思って使用しようとする可能性があることです。MyAwesomeClasssuperMyAwesomeClassthatOneBadMethod

thatOneBadMethod彼が使用しようとしたときにコンパイラ エラーまたは警告が表示されるように、オーバーライドに入れることができるプリプロセッサ ディレクティブはありますか?

4

1 に答える 1

3

ヘッダー ファイルでメソッドを非推奨にすることができます。

-(void)thatOneBadMethod __attribute__ ((deprecated("Unsupported, please call 'thatOneGoodMethod' instead!")));

しかし、人々がそれを呼び出そうとしたときにエラーを生成することもお勧めします:

-(void)thatOneBadMethod {
  NSAssert(NO, @"Unsupported, please call 'thatOneGoodMethod' instead!");
}
于 2012-05-11T21:54:47.073 に答える