これはKey-Value Codingに関連しています。次のようにします。
@interface Boat : NSObject {
NSString *name;
}
@property (nonatomic, retain) NSString *name;
@end
と...
@interface Boat
@synthesize name;
@end
シンセサイザーが (この場合) 行うことは、2 つのメソッドを作成することです。
-(NSString *)name;
-(void)setName;
いわゆる「キャメルケース」を使用してセレクターに名前を付け、ivar の最初の文字を大文字に変更してから、セッターの前に「set」を追加します。getter の名前は ivar の名前です。
ivar 名と既存のメソッドがこのパターンに従っている場合、手書きのアクセサーをプロパティに置き換えることは、ドット構文または明示的なメッセージを使用するかどうかに関係なく、問題なく機能します。
boat.name = @"Pequod"
にコンパイルされ[boat setName:@"Pequod"]
ます。にコンパイルboat.name
され[boat name]
ます。
アクセサーがそのように命名されていない場合は、このパターンに一致するようにアクセサーを使用するコード内の場所を修正する必要があります。このパターンに従ったコーディングは、すべての Objective-C / Cocoa プログラミングに対する最善のアプローチです。