iPhone の例をいくつか見ましたが、属性で変数の前にアンダースコア _ が使用されています。これが何を意味するのか、またはどのように機能するのか知っている人はいますか?
私が使用しているインターフェース ファイルは次のようになります。
@interface MissionCell : UITableViewCell {
Mission *_mission;
UILabel *_missionName;
}
@property (nonatomic, retain) UILabel *missionName;
- (Mission *)mission;
上記が正確に何をするのかはわかりませんが、ミッション名を次のように設定しようとすると、
aMission.missionName = missionName;
次のエラーが発生します:
構造体または共用体ではないもののメンバー 'missionName' を要求しています
ベストアンサー1
ivar にアンダースコア プレフィックスを使用する場合 (これは一般的な慣例に過ぎませんが、便利です)、自動生成されたアクセサー (プロパティ用) が使用する ivar を認識できるように、追加の操作を 1 つ行う必要があります。具体的には、実装ファイルではsynthesize
次のようになります。
@synthesize missionName = _missionName;
より一般的には、次のようになります。
@synthesize propertyName = _ivarName;