2012-05-10 12 views
7

Javaでは、メソッドをオーバーライドすると、@Override注釈を追加するように指示されます(ほとんど強制的に)。 Objective-C世界でオーバーライドされたメソッドを(コメントや他のメカニズムのいずれかで)マークするための規約がありますか?オーバーライドされたメソッドのObjective-C規約

+0

関連する質問:[C#でのオーバーライドの目的のCの同等](http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –

答えて

3

いいえObjective-Cのすべてのメソッドは、Objective-Cのメッセージングを通じて送信されるため、すべてのメソッドをオーバーライドできます。それは言語の一部です。

これもマーキングの規則はありません。それは起こる言語の一部です。もしあなたがそうでないとコメントしていたのであれば、後で偶然または意図的にあなたがそれをしたときに混乱するだけです。

+0

私は認識していますその状況はJavaと同じです - (ほぼ)すべての関数は仮想ですが、親メソッドをオーバーライドしているという警告が表示されます。 '[super loadView];を呼び出さないようなエラーが確実に起きます –

+0

文書を確認してメソッドを読む必要があります。いくつかのメソッドは、スーパーを呼び出すことが重要です。いくつかの方法は、あなたが**スーパーを呼び出さないことが重要です。以前は、IDEでは望めないことを言っていただろうが、コンパイラやフレームワーク、言語を制御することで、Appleは何でもできるようになったことは明らかだ。だから、バグで提案する価値があるかもしれない記者。 –

+0

(btw、大きな質問) –

1

いいえ、実際はありません。

ダイナミックディスパッチのようなものではないかもしれません。

1

私はXcodeのがこれを行うかどうかわからないんだけど、JetBrainsのからAppCode IDEは自動的にそうように、マージンに小さな青いオーバーライドバッジでオーバーライドされたメソッドをアノテート:

AppCode Override

。 。さらにそれを表示するには、オーバーライドされたメソッドに#pragmaタグで注釈を付けるためにいくつかのライブテンプレート(Xcodeでコードスニペットとも呼ばれます)を作成することもできます。私はそれがこの順で標準構造を定義するのに役立つことを見つける:

  • クラスメソッド
  • 初期&破壊
  • パブリックメソッド/プロトコル法
  • オーバーライドされたメソッド
  • プライベートメソッド

ライブテンプレート/コードスニペットを使用することで、[override [tab]を入力するだけでIDEが#pragmaタグを作成してください。

。 。おそらくOCLintを使ってこの構造が守られているかどうかを確認することさえできます。

関連する問題