宣言されたプロパティ
宣言されたプロパティは、クラスのアクセサメソッドを宣言し、必要に応じて、それらを実装するための構文的な短縮形を用意しています。クラスのインタフェースである、またはプロトコルやカテゴリ内の宣言のメソッド宣言リスト内の任意の場所でプロパティを宣言できます。次の構文を使用します:
@property (<#attributes#>) <#type#> <#name#> ;
キーワード @property でプロパティ宣言を開始します。その後、必要に応じてストレージ·セマンティクスとプロパティの他の動作を定義するプロパティ属性の括弧で囲まれたセットを提供します。(これらの属性の説明については、プロパティリストを記述した文書を参照してください。)
各プロパティの宣言は、型指定と名前で終わります。たとえば、次のように:
@property(copy) NSString *title;
以下の構文は、以下のアクセサメソッドの宣言と同等です。
- (NSString *)title; - (void)setTitle:(NSString *)newTitle;
アクセサメソッドを宣言する事に加えて、それらの実装を統合するように、コンパイラに指示する(またはクラスが実行時に、それらを統合することをコンパイラに通知する) ことができます。
プロパティの宣言で与えた仕様に一致する実装を作成するようにコンパイラに指示するために、クラスの実装ブロック内で @synthsize 文を使用して下さい。
@interface MyClass : NSObject { NSString *title; } @property(copy) NSString *title; @end @implementation MyClass @synthesize title; @end
@property の宣言で指定されたアクセサメソッドの実装を見つけることができない場合、警告を抑制するようにコンパイラに指示するには @dynamic ステートメントを使用して下さい。
@implementation MyClass @dynamic title; @end
前提条件の記事
関連記事
(なし)
既出の議論
プロパティは、オブジェクトの値をカプセル化
次の章
前の章