项目中有很多这种情况:
下划线成员变量和@property声明属性并存,那么这两者的区别是什么呢?什么时候该用下划线,什么时候该用@property?
1.区别
- Xcode4.5版本后,@property声明的属性,会自动生成一个带下划线的成员变量,以及这个变量的setter和getter方法;而下划线变量仅仅是一个变量而已,没有所谓的setter和getter方法
- 在访问数据的时候,@property声明的属性可以使用点方法 self.xxx,根据具体情况调用setter和getter方法,如果使用下划线+变量名,不会调用setter,getter方法;而下划线声明的变量只能用变量名在访问数据。
2.用法
- 如果你想使用一个属性的setter或者getter方法,就使用@property
- 如果仅仅是一个变量,不需要setter getter方法,那么可以直接声明一个下划线变量就够了,不需要浪费资源。