我在一些 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 - UIButton:如何使用 imageEdgeInsets 和 titleEdgeIns
ios - UITableView、Separator颜色在哪里设置?
objective-c - 开发像 Facebook 新 iOS 应用程序中的侧滑菜单的最佳方法是什
objective-c - IBOutlet 和 IBAction