Xcodeの#pragma
マークの目的は何ですか? .m
ファイル内の場所は重要ですか?いくつかの#pragma
は他のすべての前に来るべきですか?
#pragma mark
ディレクティブは、メソッドに直接アクセスするためのメニューのXcodeに表示されます。プログラムにはまったく影響しません。
たとえば、Xcode 4で使用すると、これらのアイテムがジャンプバーに直接表示されます。
行を作成する特別なpragma mark -
があります。
#pragma mark
は、メソッドのグループにタグを付けるために使用されるため、ジャンプバーからメソッドを簡単に見つけて検出できます。コードファイルが約1000行に達し、ジャンプボックスのカテゴリからメソッドをすばやく見つけたい場合に役立ちます。
長いプログラムでは、メソッド名を覚えて見つけるのが難しくなります。 プラグママークを使用すると、メソッドの動作に応じてメソッドを分類できます。たとえば、Table View Protocolメソッド、AlertViewメソッド、Initメソッド、宣言などのタグをタグ付けしました。
#pragma mark
はXCodeの機能ですが、コードには影響しません。コーディング中にメソッドを見つけやすくするだけです。
単純なWordでは、#pragma mark -
がメソッドの分類に使用されているため、メソッドを簡単に見つけることができます。長いプロジェクトに非常に便利です。
私が探していた情報を追加するために:pragma mark
はXcode固有であるため、異なるIDEで開くC++プロジェクトを扱う場合、そこには何の効果もありません。たとえば、Qt Creatorでは、メソッドのカテゴリを追加したり、警告/エラーを生成したりしません。
編集
#pragma
は、Cプログラミング言語に由来するプリプロセッサディレクティブです。その目的は、コンパイラに実装依存の情報を指定することです。つまり、各コンパイラは、このディレクティブを必要に応じて解釈することを選択できます。とはいえ、コード自体を変更/影響しない拡張機能と見なされます。そのため、コンパイラはそれを無視することもあります。
XcodeはIDEで、#pragma
を利用して独自の方法で使用します。ポイントは、#pragma
はXcodeではなく、Objective-C固有のものでさえあるということです。
大きい/長いクラスに数百行以上のコードがあると言うと、モニター画面ですべてを見ることができないため、クラスの概要(ドキュメントアイテムとも呼ばれます)を見ることができません。いつかクラスの概要を見たいと思っています。すべてのメソッド、定数、プロパティなどが一目でわかります。 XCodeでCtrl + 6を押すと、クラスの概要を表示できます。ポップアップバー、つまりジャンプバーが表示されます。
デフォルトでは、このジャンプバーにはバケット/セクションがありません。それはただの長いリストです。 (ジャンプバーが表示されたときに入力を開始するだけで、ジャンプバーの項目を検索できます)。ここにpragma mark
が必要になります
ジャンプバーにセクションを作成する場合は、関連する説明とともにプラグママークを使用できます。次に、問題の添付スナップショットを参照します。 「ライフサイクルを表示」と「専用セクション」は、pragma mark
sによって作成されたセクションです
プラグマがどのようにコンパイラーのディレクティブであるかを示すdocを検索していると、この NSHipsterの記事 が非常にうまく機能していることがわかりました。
読書を楽しんでください