一、@property和@synthesize的作用:
由于在oc语法中对成员变量的完整访问都需要先在@interface和@end之间声明成员变量,然后再声明这个成员变量的get方法和set方法。并且在@implementation和@end之间实现这个成员变量的get方法和set方法。这种方式在成员变量比较多的情况下比较烦琐,因此xcode中引入了@property和@synthesize关键字来简化成员变量及它的get方法和set方法的声明和实现。
二、 在Xcode4.4版本及之后版本中的@property
2.1 在新版本中,只需要使用@property int age即可完成以下功能:
1>如果成员变量不存在,默认生成私有变量_age。如果要生成子类可以访问的成员变量,需要在类的声明中手动声明@protect int _age;
2>可以自动实现age属性的get和setter的声明。
3>可以自动实现age属性的get和setter的实现。
2.2 注意
1>使用@property时,变量名尽量不要使用下划线开头。如@property int age; 不要声明成@property int _age;
2>如果成员变量不存在,@property默认会自动生成@private并以下划线开头的成员变量。
3>如果get方法存在,则@property只会自动生成set方法。
如果set方法存在,则@property只会自动生成get方法。
并且如果成员变量不存在,会自动生成@private的成员变量。