3-8クラスTips167 プロパティのアクセッサを自作する
Level2
Pointアクセッサの作成(@property)
プロパティを実装するときに「@synthesize」を使うと、自動的にアクセッサが生成されますが、これを自作したいときがあります。
例えば、プロパティに値を代入したときに、ほかのインスタンス変数を変更したり、プロパティの値を取得するときに別のインスタンス変数から計算をしたり、というプロパティの使い方をするときには、アクセッサを自作します。
アクセッサは、値の取得と設定の2つのメソッドに分かれます。
値を取得するゲッターを作成する場合は、プロパティ名と同じ引数なしのメソッドを作ります。
値の設定をするセッターを作成する場合は、「set」+「プロパティ名」のように、プロパティ名に「set」の接頭子を付けたメソッドを作ります。
アクセッサの自作は、以下のように記述します。
@interface クラス名
{
型名 インスタンス変数
}
@property 型名 プロパティ名;
@end
@implementation クラス名
-(型名)プロパティ名
{
return self->インスタンス変数;
}
-(void)setプロパティ名:(型名) 変数
{
self->インスタンス変数 = 変数;
}
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録