一言で言うと、
a simple way to declare and implement an object’s accessor methods.プロパティに対するアクセスはアクセサ(setter/getter)で行う。これを用いることはカプセル化を順守することでもある。アクセサメソッドを用いることは充分に有利なことであるが、アクセサメソッドを書くことは退屈である。
などの問題に対し、declared propertyは下記の特徴をもち、これらを解決する。
・アクセサメソッドを明示する
・宣言の際に提示した条件にて、コンパイラが自動的にアクセサを合成(synthesize)する
・プロパティは識別子にて文法的に置き換えられ、スコープも決定する。これにより宣言されていないプロパティも特定することができる。
プロパティの宣言と実装
宣言の仕方は、
@property (attributes) type name;実例は
@property float value;で、以下と等価である。
- (float)value;アトリビュートの設定も可能(アトリビュートとは何であるかは置いておいて。。)
- (void)setValue:(float)newValue;
Writability(readwrite | readonly)
readonly = setterを作らないと同義。
Setter Semantics(strong | weak | copy | assign | retain)
Atomicity(設定できるのはnonatomicのみ)
詳細はあとで。
※「キー値コーディングは、Mac OS X 10.3(Panther)の時代にCocoaバインディングの一部として追加されたもの」http://news.mynavi.jp/column/objc/104/index.html
0 件のコメント:
コメントを投稿