iOS 你理解成员变量、属性、实例变量吗?
2016-09-06 00:00
295 查看
你理解成员变量、属性、实例变量吗?
说明一点,成员变量与属性不一样!
首先,成员变量是写在 { } 括号内的变量。因为成员变量不会生成set、get方法所以外界无法与成员变量接触。
其次,为了方便使用,才有了属性变量。属性变量的好处就是允许让其他对象访问到该变量。通过@property创建的属性变量,系统会自动生成set、get方法。当然也可以控制只读或者只写。
最后,实例变量其实是成员变量的一种特例。实例是针对类而言,指类的声明。所以实例变量也是类内部使用的,无需与外部接触的变量。
.h文件和.m文件中变量的几条规则
1、私有成员属性和私有属性变量是指定义在.m文件中的属性。在.m中定义的成员变量不能和它的头文件.h中的成员变量同名。
2、如果在.h文件中声明的属性,外部类可以通过“类实例.属性”来调用。
3、如果在.m中声明的则不可以以上方法,只能是通过setValue:forKey和valueForKey来实现。
4、变量有三种权限:分别是@private、@protected、@public。
5、如果属性写在.m文件中就相当于@private私有属性,给其添加@public就变成公开属性。
示例代码说明
说明一点,成员变量与属性不一样!
首先,成员变量是写在 { } 括号内的变量。因为成员变量不会生成set、get方法所以外界无法与成员变量接触。
其次,为了方便使用,才有了属性变量。属性变量的好处就是允许让其他对象访问到该变量。通过@property创建的属性变量,系统会自动生成set、get方法。当然也可以控制只读或者只写。
最后,实例变量其实是成员变量的一种特例。实例是针对类而言,指类的声明。所以实例变量也是类内部使用的,无需与外部接触的变量。
.h文件和.m文件中变量的几条规则
1、私有成员属性和私有属性变量是指定义在.m文件中的属性。在.m中定义的成员变量不能和它的头文件.h中的成员变量同名。
2、如果在.h文件中声明的属性,外部类可以通过“类实例.属性”来调用。
3、如果在.m中声明的则不可以以上方法,只能是通过setValue:forKey和valueForKey来实现。
4、变量有三种权限:分别是@private、@protected、@public。
5、如果属性写在.m文件中就相当于@private私有属性,给其添加@public就变成公开属性。
示例代码说明
// LWDCategory.h #import <UIKit/UIKit.h> @interface LWDCategory : NSObject { UIButton * _button; // 成员变量,也是实例变量 id _obj; // 成员变量,也是实例变量 int _totalNum; // 成员变量,不是实例变量 } @property (nonatomic , strong) UIButton * button; // 属性变量 @property (nonatomic , strong) id obj; // 属性变量 @property (nonatomic , assgin) int totalNum; // 属性变量 // LWDCategory.m #import <UIKit/UIKit.h> @interface LWDCategory (){ UIButton * _innerButton; // 私有成员变量,也是私有实例变量 id _innerObj; // 私有成员变量,也是私有实例变量 int _innerTotalNum; // 私有成员变量,不是私有实例变量 } @property (nonatomic , strong) UIButton * innerButton; // 私有属性变量 @property (nonatomic , strong) id innerObj; // 私有属性变量 @property (nonatomic , assgin) int innerTotalNum; // 私有属性变量
相关文章推荐
- 【转截】iOS成员变量、实例变量、属性变量三者的联系与区别
- iOS 成员变量,实例变量,属性变量的区别,联系
- 仔细理解iOS成员变量和实例变量以及类方法和实例方法
- IOS 成员变量,属性变量,局部变量,实例变量,全局变量 详解
- IOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系
- IOS之成员变量,属性变量,局部变量,实例变量,全局变量
- iOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系
- ios -- 成员变量、实例变量与属性的区别
- iOS 成员变量,实例变量,属性变量的区别,联系
- iOS 成员变量,实例变量,属性变量的区别,联系
- iOS 中成员变量、实例变量、属性 三者区别与联系
- iOS 成员变量,属性变量,局部变量,实例变量,全局变量 详解
- iOS成员变量、实例变量、属性变量三者的联系与区别
- iOS的成员变量、实例变量、属性变量
- 【转】iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- 【原】iOS动态性(一):动态添加属性的方法——关联(e.g. 向Category添加成员变量)
- 转载,自用,iOS中成员变量和属性的区别