2012年10月11日木曜日

declared property 実践

・アクセサの命名
@property (getter=isEnabled, setter=makeEnable:) BOOL enabled;

setter名はコロン(:)を忘れずに。

・unwritable(と勝手に名付けた)
@property (readonly) NSString* firstName; 

setterを作らないので呼べません。

・書き込み可能なオブジェクトの保持(ガベージコレクションの有無で変わる)
GC無効の場合、オブジェクトのオーナーシップをどうすべきか、気にしなくてはいけない。retainを呼んでそのオブジェクトを保持するか、または単に参照を持つだけか。copyは指定されたオブジェクトをコピーして保持すると。

//GCなし
@property (retain) NSString* title;
@property (assign) id delegate;

@property (copy) NSString* value;


ガベージコレクション無効の場合はいずれかの指定子を宣言しないとけないと。

ガベージコレクション有効な場合、無指定ではassignとなる。assignかcopyかは明示しておいたほうが無難と。

0 件のコメント:

コメントを投稿