2008-08-22 14 views
5

私はobjective-CとCocoaを学んでいます。「ヌル定義マクロ」とは何ですか?

IBOutletは、Cプリプロセッサがコンパイル時に削除され、nullで定義されたマクロ、次のとおりです。アップルのチュートリアルでは、私は言いサイドノートがありますを通じて働いています。

私は不思議です - ヌル定義のマクロとは何ですか?

答えて

8
#define IBOutlet 

プログラムテキストでIBOutletを使用するたびに、何も置き換えられません。

8

FYIこの具体的なケースでは、IBOutletが存在する理由は、Interface Builderがソースファイルを解析して理解のビットを集めることができるためです。 UIを設計するときに、IBOutletの前にある変数がInterface Builderのアウトレットとして表示されるという手掛かりです(ちょっと手掛かりよりも強い)。

7

ヌル定義マクロは、プリプロセッサによって何も置き換えられない(削除される)マクロです。 phoneは出力変数である、addressは、入力と出力の両方で、

 
#define IN 
#define OUT 
#define INOUT 

int myFunction(IN char *name, INOUT char *address, OUT char *phone); 

この宣言はnameは、関数の入力変数であることを示唆している:それの役割は、次のようなコードで何か、についてのヒントを与えることです。

+1

これは本当にかわいいです。私にアダーマを思い出させる(明らかに)。 パラメータ名の前または後に接頭辞を付けることをお勧めします。しかし、同じ効果。 – schwa

+0

同じですが、クレイジーマクロで名前空間が汚染されていない点を除いて同じです。 ;) – Kos

0

また、何が定義されているかわからない場合は、コマンドをダブルクリックして、元のソースファイルの定義を開きます。

0

私がそれをしている間。オプションのダブルクリックは、ダブルクリックされたシンボルのドキュメントを開きます(しようとします)。

+3

2つの答えをマージして削除してみませんか? – Amarghosh

関連する問題