iOS中属性和变量的区别

一、首先要了解实例变量和成员变量的区别:

@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方法将被调用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容