iOS懒加载

懒加载:

也就是延迟加载,以UI控件为例,通常用到这个控件的时候再进行一系列的初始化操作,在移动端中,内存相形见绌,所以有时懒加载可以一定程度得减轻内存占用

举例:

@interface lazyAdd() @property (nonatomic,strong) UIButton *loginButton; @end

@implementation lazyAdd
- (void) viewDidLoad{ [self.loginButton addTarget:self action:@selector(toLogin) forControlEvents:UIControlEventTouchUpInside]; };

- (UIButton *)loginButton{ if(!_loginButton) { _loginButton = [[UIButton alloc] initWithFrame:CGRectZero]; } return _loginButton; }
@end

分析:

懒加载的原理:重写了对象的 getter方法
上面代码中 viewDidLoad中 self.loginButton 调用了loginButton的getter方法
- (UIButton *)loginButton方法就是重写过后loginButton的getter方法,这时会加载控件

优点:

①不需要再把控件的初始化操作写在viewDidLoad中,代码看着更为简洁
②模块更为集中,高内聚、低耦合。

注意:在 重写getter方法时,不要调用self.loginButton,否则会造成死循环,自己调用自己的getter方法,一直调,一直调。。。。。。

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

推荐阅读更多精彩内容

  • 周末闲来无事,想谈谈自己开发中的一些浅认识。最近看自己以前写的代码,大量的UI初始化写在视图加载viewDidLo...
    火星抄手阅读 1,583评论 0 14
  • 写在前面 昨天晚上写的那个代码在配置数组数据的时候突然想到加载数据的时候可以不用在viewDidLoad中加载,可...
    劉光軍_MVP阅读 2,326评论 1 6
  • 写在前面 代码在配置数组数据的时候可以不用在viewDidLoad中加载,可以什么时候用什么时候加载,这种技术就是...
    无沣阅读 229评论 0 0
  • 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果...
    Double丶K阅读 597评论 0 1
  • 在开发中,我们常定义一些控件属性,如UIButton、UIView等等。而实例化时,我们常常使用懒加载实例化它们。...
    西叶lv阅读 1,827评论 0 3