一、首先要了解实例变量和成员变量的区别:
@interface MyViewController : UIViewController{
//1.基本数据类型变量
int num;
//2.实例变量
UIButton *button;
}
@end
基本数据类型变量默认是protected,不会生成get、set方法,非子类对象不可访问。
如果变量的数据类型是一个类,则称这个变量是实例变量。不可被外部访问,即成员变量也称私有变量。
实际上成员变量包括基本数据类型变量和实例变量。
二、属性变量
@interface MyViewController : UIViewController{
//1.基本数据类型变量
int num;
//2.实例变量
UIButton *button;
}
//声明属性
@property (nonatomic, strong) NSString *name;
@end
默认属性会生成_name变量,并自动生成get、set方法。
把属性定义在.h文件可被外界访问,定义在.m文件不可被外界访问。
属性可用_name及self.name访问。self.name其实是调用name的get/ set方法。
成员变量不可self.调用,因为成员变量没有生成get、set方法。
(self.)如果点表达式出现在等号 = 左边,该属性名称的setter方法将被调用。如果点表达式出现在右边,该属性名称的getter方法将被调用。