2011-09-11 3 views
22

Appleからのサンプルコードについて、非常に基本的な質問があります。 .mファイルでは、クラスの宣言は次のようになります。@interfaceディレクティブと@implementationディレクティブのかっこ内のテキストは何を意味していますか?

@interface MyMovieViewController (OverlayView) 
[...] 
@end 

@interface MyMovieViewController (ViewController) 
[...] 
@end 

@implementation MyMovieViewController(ViewController) 
[...] 
@end 

@implementation MyMovieViewController (OverlayView) 
[...] 
@end 

@implementation MyMovieViewController 
[...] 
@end 

完全なコードhereを。

括弧内の項目( "OverlayView"と "ViewController")は、コードを分割して読みやすくするのに役立ちますが、実際にはコードの実行には影響しません。しかし、私は何か重要なことを誤解したくないので、私は確かめることを確認すると思った。

私の理解は正しいですか?ありがとう!

答えて

20

ものはCategoriesと呼ばれ、あなたのクラスにさらに機能を追加することを可能にしています。

カテゴリを使用すると、ソースを持たない既存のクラスにもメソッドを追加できます。カテゴリは、サブクラス化せずに既存のクラスの機能を拡張できる強力な機能です。カテゴリを使用して、複数のファイルに独自のクラスの実装を配布することもできます。クラス拡張は似ていますが、プライマリクラス@interfaceブロック以外の場所にあるクラスに対して追加の必須APIを宣言することができます。

From the Apple docs on Categories and Extensions.

[既存のクラスをカスタマイズ]を
+0

アップルのドキュメント(https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html) – LopSae

関連する問題