2011-07-10 4 views
0

具体的には@interfaceヘッダーファイルのセクションを保持する必要がありますか?ヘッダーファイルの@interfaceセクションは何ですか?

例からは、インスタンス変数を宣言するのに使用されているようです。アクセサやその他の方法は、その外にあるようです。クラスを宣言し、カテゴリを宣言:

+0

メソッドは '@interface'宣言の外にはありません。宣言は '@interface ... @end'なので、__inside__です。また、 '@interface'はヘッダファイルだけに限定されません。 –

答えて

2

@interfaceは、少なくとも2つのコンテキストを持って明確にしてください。クラス宣言は、(括弧のものはオプションである)以下のようになります。

@interface Class [: Superclass] 
{ 
    [fields] 
} 
[methods] 
@end 

カテゴリ宣言はほぼ同じに見えますが、何のフィールドゾーンがありません:だから

@interface Class (CategoryName) 
[methods] 
@end 

を、@interfaceライン必見クラス宣言の場合は中カッコが続き、そのクラスのフィールドは中に囲まれます。中カッコの後にメソッドを配置します。ドキュメントから

+2

ちょっと注意してください。中カッコはオプションで、フィールドを定義する場合にのみ必要です。また、クラス拡張でivarsを定義できるようになりました(あなたが逃した3番目のケース)。 –

+0

すばらしいコメント。ありがとうございました – JAM

1

インターフェース・ファイルは、他のObjective-Cコードからクラスを使用することが必要なすべての情報を保持するソースコードで使用することができる新しいクラスを宣言する。第1に、ファイルは、クラス階層におけるクラスの位置をプログラマに明らかにする。これは、どのクラスがスーパークラスであるかを正確に定義することによって行われる。第2に、サブクラスを作成するときにどのような変数が継承されるかをプログラマに知らせます。最後に、インタフェースファイルは、クラスオブジェクトおよびクラスのインスタンスに送信可能なメッセージの他のソフトウェアエンティティに通知することができる。

関連する問題