@synthesize

@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


 

转载于:https://www.cnblogs.com/yibinpan/p/9144506.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值