我在一些iPhone示例中看到,属性在变量前面使用了下划线_。有人知道这意味着什么吗?或如何运作?

我正在使用的接口(interface)文件如下所示:

@interface MissionCell : UITableViewCell {
    Mission *_mission;
    UILabel *_missionName;
}

@property (nonatomic, retain) UILabel *missionName;

- (Mission *)mission;

我不确定上面的功能到底是什么,但是当我尝试将任务名称设置为:
aMission.missionName = missionName;

我得到错误:

最佳答案

如果您为下划线使用下划线前缀(仅是一个通用约定,而是一个有用的约定),则您需要多做一件事情,以便自动生成的访问器(针对该属性)知道要使用哪个ivar。具体来说,在您的实现文件中,您的synthesize应该如下所示:

@synthesize missionName = _missionName;

更一般而言,这是:
@synthesize propertyName = _ivarName;

10-08 14:39