OC的@property和@synthesize


1. 成员变量和属性的区别。

@interface User : NSObject

{

    int _height; // 成员变量,不会自动生成setter 和getter方法。

}


@property (strong, nonatomic) NSString *uid; // 属性。 会自动生成setter和getter方法。

@property (assign, nonatomic) int age;


2. 

@property 和 @synthesize 

  声明一个setter getter 方法
@synthesize 实现setter getter 方法

在Xcode4.5及以后的版本中,可以省略@synthesize ,编译器会自动帮你加上getter 和 setter 方法的实现,并且默认会去访问_age这个成员变量,如果找不到_age这个成员变量,会自动生成一个叫做 _age私有成员变量。

如果加了 

@synthesize age; 则可以使用age的成员变量。


3. 由于书写习惯,OC中定义成员变量的时候,习惯写 _age 的这种形式。




你可能感兴趣的:(OC的@property和@synthesize)