iOS 属性引用self->,self.xx与_xx的区别

Posted by Genie on August 11, 2020

@property 会生成ivar+setter+getter 方法, 自动实现 synthesize 实例变量

self.ivar - 通过@property 定义属性, 有retaincount

` _ivar ` - 成员变量 ,不自动实现setter ,getter,这个在 .m 中可以用self->ivar_ivar 来赋值及引用,在写框架中需要定义private 会很有用.

一旦重写一个属性的get和set方法的话,Xcode不会再自动生成带有下划线的私有成员变量了。 如下图所示,在我们只定义了get方法时一切都没有问题,但是一旦我们又重写set方法,会发现用到 _ivar 的地方就会报错 图片