iOS懒加载

作者: ManoBoo | 来源:发表于2015-12-10 16:34 被阅读730次

懒加载:

也就是延迟加载,以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方法,一直调,一直调。。。。。。

相关文章

  • Swift的懒加载和只读属性的介绍

    懒加载 在 iOS 开发中,懒加载是无处不在的 懒加载的格式如下: lazy var person: Person...

  • iOS-UI-懒加载

    原文找不到了 iOS-UI-懒加载 1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内...

  • 2018-12-21

    iOS开发中懒加载遇到的坑 正常写一个懒加载对象 - (MAMapView*)mapView{ if(nil=...

  • iOS 数组 NSArray 遍历 懒加载总结

    iOS开发之懒加载 iOS中数组遍历的方法及比较

  • iOS开发——懒加载

    懒加载的定义 懒加载也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。iOS设备的内存有限,如果程序在启...

  • # 懒加载

    在 iOS 开发中,懒加载是无处不在的 懒加载的格式如下: 懒加载本质上是一个闭包 以上代码可以改写为以下格式 懒...

  • iOS开发之懒加载

    iOS开发之懒加载 在iOS开发中几乎经常用到懒加载技术,比如我们存放网络数据的数组,控制器的view,控件的自定...

  • iOS 懒加载

    懒加载:也称延时加载,即在对象用到的的时候才加载。其实懒加载,就是所谓的重写对象的get方法,当系统或者开发者调用...

  • iOS懒加载

    所谓的懒加载可以定义为:延时加载,即当对象需要用到的时候再去加载。其实就是所谓的重写对象的get方法,当系统或者开...

  • iOS懒加载

    iOS懒加载 简单的讲就是拖到最后一刻,万不得已了,才加载,才开始占用资源。所谓懒加载,写的就是其getter方法...

网友评论

  • RiversMa:有道理 :smile:
  • RiversMa:优点我真没看出来呢?
    我创建初始化都在ViewDidLoad里
    ManoBoo:@RiversMa 不是啊,你在ViewDidLoad里面初始化了全部控件,然后用户并没有点击按钮,这样来说,创建那个弹出框不就没有必要了,对吧
    RiversMa:@ManoBoo 不对,逻辑还是有问题,即使我不是懒加载,那肯定也是我点击按钮才开始加载弹出框的,所以内存上也是没有起到省空间的作用。如果是控件本身你不加载,他也无法显示啊
    ManoBoo:比如,这个页面有一个按钮,点击按钮弹出一个框,用户不点击你就不需要加载这个控件,省内存~,其实类似于延迟加载

本文标题:iOS懒加载

本文链接:https://www.haomeiwen.com/subject/urlyhttx.html