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来告诉编译器不要生成任何代码或者创建相应地实例变量–我们可以自己来。