@property的本质是什么?ivar、getter、setter是如何生成并添加到这个类中的

1.@property的本质是什么

@property的本质 = ivar (实例变量) + getter (取方法) + setter (存方法)

“属性”(property)有两大概念:实例变量(ivar)、存取方法(getter + setter)

 2、ivar、 getter 、setter 是如何生成并添加到这个类中的

这是编译器自动合成的,通过@synthesize 关键字指定,若不指定,默认为@synthesize  propertyName = _propertyName;若手动实现了getter/setter 方法,则不会自动合成。

现在编译器已经默认为我们添加了@synthesize  propertyName = _propertyName;因此不再手动添加了,除非你真的要改变成员变量名字。

生成getter方法时,会判断当前属性名是否有“_”,比如声明属性为@property(nonatomic,copy)NSString *_name;那么所生成的成员变量名就会变成“_name”,如果我们要手动生成getter 方法,就要判断是否以“_”开头了。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值