码迷,mamicode.com
首页 > 其他好文 > 详细

@synthesize

时间:2018-06-06 15:57:17      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:自己   tom   声明   编译   nta   atomic   zh-cn   合成   变量   

@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

标签:自己   tom   声明   编译   nta   atomic   zh-cn   合成   变量   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!