@propertyは自動的にセッター(setter)/ゲッター(getter)を作ってくれるそうだ。
入門書だけ読んでたら、あやうくスルーするところだった。
基本的には、こうらしい。
- @property 型 propertyName;
- ゲッター : propertyName
- セッター : setPropertyName:(型)
- メンバ変数 : _propertyName
プロパティ宣言した名前とゲッターが同じになるけれど、メンバ変数は違うんだ。
だから、selfをつけないとうまくアクセスできなかったのだ。
それはいいとして、気になっているのは@synthesizeだ。
ネットでなんとなく読んでいる限りでは、@synthesizeしないとセッターやゲッターを作ってくれない、という風に読んでいたのだ。
しかしAppleのドキュメントを読むと、@synthesizeを使うのは、
- プロパティのメンバ変数名を規定の名前以外にしたい場合
- readwriteのプロパティに対して自前でセッター/ゲッターを実装したが、メンバ変数がほしい場合
- readonlyのプロパティに対して自前でゲッターを実装したが、メンバ変数が欲しい場合
に使うものだそうだ。
あー、今日は時間切れ。
おやすみなさい。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。