使用尾随下划线合成属性

时间:2014-03-10 18:10:10

标签: ios objective-c

我正在关注使用XCode 4的Lynda.com OCUnit测试教程。在其中一个演示中,它将像这样在Location.m文件中合成属性

#import "Location.h"

@implementation Location

@synthesize locationManager=locationManager_;
@synthesize speed=speed_;

属性有一个尾随下划线。在我所遵循的其他教程中(例如Stanford iOS类),合成属性通常以实例变量的下划线为前缀。

.h文件中创建属性时,没有下划线。

@property (nonatomic, strong) CLLocationManager *locationManager;
@property float speed;

为什么在Synthesisize语句中使用尾随下划线?

2 个答案:

答案 0 :(得分:2)

写作

@synthesize locationManager=locationManager_;

您正在定义一个支持您财产的ivar locationManager_

因此,您仍然使用

引用该属性
self.locationManager

但是,ivar,“后面”该属性现在被称为:locationManager_

答案 1 :(得分:0)

@synthesize允许您指定ivar的名称。该属性名为locationManager,但ivar名为locationManager_