@property 、@synthesize 、@dynamic区别

@property

会帮助开发者自动生成get/set方法,编译期间系统发现开发者未添加属性对应set/get方法则会自动生成,已添加则不管。同时属性对应的成员变量默认是 "_属性名"。

@synthesize

在xcode4.4之前如果要自动生成set/get方法,需要此关键字。如果项目里使用 "@synthesize 属性名" 则会声明成员变量和属性为同一个变量。举例:
@synthesize person;
此时self.person 和 person 一致。

@dynamic

此关键字告诉编译器,set/get方法开发者自己编写,如果没有写也不用发出警告,但如果使用此关键字而又不写set/get方法,则调用时会发生崩溃。成员变量依旧是属性前加下划线。

你可能感兴趣的:(@property 、@synthesize 、@dynamic区别)