objective-c - cocoa objective-c类中变量前面的下划线如何工作?

我在一些 iPhone 示例中看到属性在变量前面使用了下划线 _。有谁知道这意味着什么?或者它是如何工作的?

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

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

@property (nonatomic, retain) UILabel *missionName;

- (Mission *)mission;

我不确定上面到底做了什么,但是当我尝试将任务名称设置为:

aMission.missionName = missionName;

我得到错误:

request for member 'missionName' in something not a structure or union

最佳答案

如果您为您的 ivars 使用下划线前缀(这只不过是一种常见的约定,但一种有用的约定),那么您需要做 1 件额外的事情,以便自动生成的访问器(用于属性)知道哪个 ivar使用。具体来说,在您的实现文件中,您的 synthesize 应该如下所示:

@synthesize missionName = _missionName;

更一般地说,这是:

@synthesize propertyName = _ivarName;

关于objective-c - cocoa objective-c类中变量前面的下划线如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/822487/

相关文章:

iphone - 真的不应该在生产代码上使用 NSLog() 吗?

objective-c - 在 Objective-C 中创建常量的最佳方法是什么

iOS 应用程序错误 - 无法将自身添加为 subview

ios - UIButton:如何使用 imageEdgeInsets 和 titleEdgeIns

ios - UITableView、Separator颜色在哪里设置?

objective-c - 开发像 Facebook 新 iOS 应用程序中的侧滑菜单的最佳方法是什

objective-c - IBOutlet 和 IBAction

ios - 继承 UIView 的正确做法?

ios - 是否可以使用 UITableViewStylePlain 禁用 UITableView

iphone - 如何将 NSDictionary 转换为 NSData,反之亦然?