首页 > 其他 > 详细

@synthesize

时间:2018-06-06 14:31:11      阅读:145      评论:0      收藏:0      [点我收藏+]

@synthesize的作用是生成实例变量并用这个实例变量生成对应的getter,setter,当声明一个属性,并且没有重写getter,setter方法时,编译器会自动生成实例变量及getter、setter,例如声明

@property (nonatomic, assign) NSInteger age;

编译器编译时会自动添加 @synthesize age = _age;

 

有一点需要注意,当只重写getter和setter其中的一个方法时,编译器会帮你生成实例变量,如果同时重写了getter和setter方法,编译器则不会自动生成实例变量,需要手动生成,写法是在@implementation里添加 @synthesize 属性名 = 实例变量名。(例 @synthesize age = _age;

如果只写 @synthesize 属性名;则表示实例变量名跟属性名一样(例 @synthesize age)。

 

如果不希望编译器自动合成getter,setter,可以用 @dynamic 属性名;这时候需要自己添加实例变量及setter,getter。

 

我们代码里使用@synthesize的情况一般为当我们既重写了getter又重写了setter,此时需要用synthesize来帮我们生成实例变量。另外一种情况是给实例变量重命名,比如说我们不想用默认的下划线+属性的命名,可以写成@synthesize age = myAge;此时属性age的实例变量的名字就变成了myAge


 

@synthesize

原文:https://www.cnblogs.com/yibinpan/p/9144506.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!