返回信息流看到别人的好多代码定义了@property属性之后,有的用self.变量名访问,而有的用_变量名访问,这两个有区别吗?
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #27471同步于 2015/12/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
[问题]iOS中下划线_变量和self.变量的区别?
chujunhe1234
2015/12/1镜像同步22 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
这俩不是一个东西吧?我一直不是很理解。
【 在 seshy 的大作中提到: 】
: 嗯,怎么说呢,我只知道,写get方法时,得用_变量名访问,否则会crash
self其实是去调用getter和setter方法,_是直接访问到那个变量,getter和setter里面用_访问为了避免循环调用。
发自「贵邮」
关键词 什么是property 什么是成员变量ivar
从这两个关键词入手 google一下
这两个词的衔接是getter/setter
【 在 chujunhe1234 的大作中提到: 】
看到别人的好多代码定义了@property属性之后,有...
下划线是直接访问变量,self是通过getter setter 访问变量,不用property需要自己写getter setter 方法,请搜索kvc
发自「贵邮」
下面很多人回答了,self.是调用get方法,所以在get方法里还用self.就会重复引用。。。
【 在 seshy 的大作中提到: 】
: 嗯,怎么说呢,我只知道,写get方法时,得用_变量名访问,否则会crash
原来如此。。。我看一个代码里有懒加载,看他随意用我就也学着,结果发现就有问题了,必须先调用self.之后,才能用_,不然的话在没有调用self.懒加载之前直接访问_是空值。。。
【 在 h1050311695 的大作中提到: 】
: self其实是去调用getter和setter方法,_是直接访问到那个变量,getter和setter里面用_访问为了避免循环调用。
: 发自「贵邮」