我正在关注使用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语句中使用尾随下划线?
答案 0 :(得分:2)
写作
@synthesize locationManager=locationManager_;
您正在定义一个支持您财产的ivar locationManager_
。
因此,您仍然使用
引用该属性self.locationManager
但是,ivar,“后面”该属性现在被称为:locationManager_
答案 1 :(得分:0)
@synthesize
允许您指定ivar的名称。该属性名为locationManager
,但ivar名为locationManager_
。