@property和@synthesize有什么意义?

esq*_*qew 5 iphone objective-c-2.0 ios4

我无法弄明白,也没有网站可以清楚地解释它......究竟是什么目的@property@synthesize

提前致谢!

Fra*_*nov 13

Objective-C运行时编程指南:声明的属性

@property声明要实现的公共属性的getter和setter方法.例如这个属性声明:

@property float value;
Run Code Online (Sandbox Code Playgroud)

相当于:

- (float)value;
- (void)setValue:(float)newValue;
Run Code Online (Sandbox Code Playgroud)

@synthesize 提供这两个访问器的默认实现.

更新:以上解释了这两者的作用.它没有解释他们的目的是什么.:-)

  • @property将一个成员添加到公共接口,该公共接口充当类客户端的数据变量,但是使用方法读取和写入.这使您可以更好地控制客户端和代码之间交换的数据,例如,您可以对代码赋予的值进行扩展验证.
  • @synthesize 允许您不显式编写客户端将调用的代码,并实际将该属性视为数据变量.