美文网首页iOS开发
iOS懒加载注意事项

iOS懒加载注意事项

作者: Eddiegooo | 来源:发表于2017-03-14 11:15 被阅读95次

懒加载

1.懒加载

懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其getter方法。说的通俗一点,就是在开发中,当程序中需要利用的资源时。在程序启动的时候不加载资源,只有在运行当需要一些资源时,再去加载这些资源。
2.使用懒加载的好处:
(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强
(2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合
(3)只有当真正需要资源时,再去加载,节省了内存资源。

但是:

懒加载会出现这样一个问题:首次加载这个界面,控件都是懒加载的,之后在请求数据,在刷新界面; 这样就会出现这个问题:加载这个界面的时候(懒加载),还没有请求到数据时,需要加载请求数据的视图上就会显示“NULL”字样,之后请求到了数据在刷新界面赋值就OK了。 当你网络很慢的时候,就会显示NULL字样很久,体验不好,如下图所示:


此时加载了视图,但是数据还没请求到,已经对其赋值了

解决办法:

1、赋值之前先对数据源做判断,如果是nil,直接return掉,不赋值;当确保不为nil时在赋值;
2、先请求数据,请求到了数据之后,在加载视图,这时候会出现一个问题,就是当网络很慢的时候,请求数据很慢,这时候整个界面就是一个空白,处理方法是加上一个加载进度条,这样交互会稍微好点。
3、创建视图的时候,先对其附一个初始值,随便或是写一个空也可以。(这样处理只能是在不是用懒加载创建控件的情况;懒加载怎么对控件赋初值?我直接赋初值没有效果呢,求告知?O(∩_∩)O谢谢);
具体怎么解决看你们的项目需求吧。 个人比较推荐第一种方法。

总结

适用范围:

一般小的不复杂的、可能有可能没有的控件(比如空白提示View),这种情况用懒加载就比较好了;假如很大一个控件,建议不使用懒加载。因为懒加载时候一般不能确定控件大小,会出现视图先很小,然后填充数据后迅速变大的过程,体验不好。

注意事项:

懒加载填充数据的时候一定要注意,确保数据不为nil;当你数据源为nil时,界面是先创建的,这时候还没有赋值,界面上就会显示null字样,很难看。(当然了,只要是给界面赋值,你的数据源为nil,都会出现这个情况,只是懒加载出现的时候多一些。因为我们一般都是先创建视图,在请求数据嘛);所以给视图赋值时候不能在懒加载中。

相关文章

  • iOS懒加载注意事项

    懒加载 1.懒加载 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其ge...

  • 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懒加载注意事项

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