iOS - 私有成员变量,私有属性的写法选择
来源:互联网 发布:阿里云客服培训中心 编辑:程序博客网 时间:2024/05/21 20:27
在某一类的中声明私有成员变量发展历程:
早期只能定义在.h头文件中,使用@private关键字来让这个成员变量变成私有
@interface ViewController (){ @private BOOL _isBool;}@end
之后,允许在.m文件中添加一个匿名的Category,用来添加属性
@interface ViewController ()@property(nonatomic,assign)BOOL isBool;@end
2013年WWDC进一步改进,允许在.m的@implementation 中直接添加类的私有变量
@implementation ViewController{ BOOL _isBool;}
目前为止已经很少有人采用第一种方式,变量完全暴露在外部,并且影响可读性。主要纠结在于什么时候该用第二种,什么时候该用第三种,两者区别在哪里。
属性(@property):
一共做了三件事情:创建实例变量,生成setter方法,getter方法。在ios5之前,还需要在.m文件中使用@synthesize关键字生成setter,getter方法。
实例变量:仅仅创建实例变量,需要手动去创建。
总结:属性会自动生成setter,getter方法,有的时候就会生成一些无用的方法,造成程序的IPA体积过大。使用成员变量的方式(_isBool)运行的速度更快。
当开发使用懒加载(变量在需要的时候再去加载)的时候:
- (BOOL)isBool{ if (!_isBool) { _isBool = NO; } return _isBool;}
一般会使用@property的方式。
建议:在不需要使用懒加载的时候,直接在.m文件中使用_XXXXX的方式创建实例变量,来减小IPA体积,提高程序的运行速度,尽量减少两者混用的情况。
但是一般情况下,我们开发的APP并不需要进行很大程度上的深度优化,所以两者皆可。多人协同开发时,尽量统一规范。
个人总结,有不足之处,希望不吝赐教。
2 0
- iOS - 私有成员变量,私有属性的写法选择
- 浅谈iOS中私有成员变量和属性的选用
- iOS访问类的私有成员变量及私有方法
- iOS访问类的私有成员变量及私有方法
- 私有成员变量的理解
- 私有的静态成员变量
- 类的私有成员变量和私有成员函数
- OC 局部变量 成员变量 属性及方法 OC成员变量的私有性
- 私有静态成员变量
- 私有静态成员变量
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- C++私有成员变量的理解
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- Thrift 生成私有的成员变量
- Oracle 11g 透明网关连接mssql2008r2数据库
- 关于Android开发适配问题报告
- 交叉编译minicom for ARM
- fork()详解
- SOLID设计原则
- iOS - 私有成员变量,私有属性的写法选择
- Android开源工具项目集合转自http://blog.csdn.net/qq_16131393/article/details/51465538
- bootstrap图片剪裁预览上传
- Java语言——else if语句嵌套的优化
- app.js
- 常见的链表操作
- Socket编程(五)---NIO原理解读
- mysql索引总结----mysql 索引类型以及创建
- python学习04-序列