私はいくつかのObjective-C、特にiOS関連のものを学んでいます。UIViewController
新しい、、などを生成するときはいつでも、生成されたファイルとファイルUITableViewController
の両方に。が含まれます。ファイルからを削除しても、アプリケーションはコンパイルを続行します。ファイル内のこれの目的は何ですか?.h
.m
@interface
@interface
.m
@interface
.m
質問する
487 次
2 に答える
4
.mファイルの@interfaceは、クラス拡張子(名前のないカテゴリ)です。これがテンプレートに含まれ、コードの他の部分に公開したくない内部メソッドまたはivarの宣言を配置できるようになりました。
最新のObjective-Cランタイムの出現とclangの進歩により、適切に記述されたクラスは次のようになります。
1)ヘッダーにパブリックメソッドのみが含まれている
2)内部クラス拡張で宣言されたivarと内部メソッドを持っている
于 2012-07-29T19:33:43.873 に答える
3
技術的には、これは「クラス拡張」です(Objective-Cの紹介ドキュメント(の「拡張」セクション)を参照)。実際には、これを「プライベート」インターフェースとして使用することが一般的になっています(これは、それが存在するファイルにのみ「表示」されます)。Objective-Cは、他の人がこれらのメソッドを呼び出すのを阻止しませんが、それらを「見る」ことはありません(.hファイルをパブリックインターフェイス、この匿名カテゴリをプライベートインターフェイスと考えてください)。
@property
公開したくないものを宣言するのに便利です。
于 2012-07-29T19:36:16.477 に答える