objective-c笔记:属性

objective-c在2.0中引入了属性(property),它组合了新的预编译指令和新的属性访问器语法。

 

所有的属性都是基于变量的,当你在synthesize getter和setter方法的时候,编译器会自动创建与属性名称相同的实例变量。

有两个地方可以添加实例变量,头文件和实现文件。

如果实例变量只属于当前类,可以把它们放在.m文件中。

如果想要子类继承这些实例变量,则需要把它们放在.h文件中。

 

@interface AllWeatherRadial: Tire

{

float rainHandling;

}

@property float rainHandling;

@end

 

@implementation AllWeather

@synthesize rainHandling;

@end

 

 

如果没有为属性指定任何特性,默认使用的是nonatomic和assign

 

名称的使用

@synthesize name = appellation;

编译器仍将创建-setName: 和-name方法,但是其实代码中用的却是appellation实例变量。

 

自己动手

使用关键字@dynamic来告诉编译器不要生成任何代码或者创建相应地实例变量–我们可以自己来。