1.作为一种开发中常用的设计模式,懒加载深受广大的开发者喜欢。那么什么是懒加载?懒加载的核心的思想是延迟加载,需使用到的时候才进行加载。例如一些页面中,有些子控件不是当页面出现就展示出来的,需要在页面进行某些操作才会触发该子控件的的显示,那么此时可以考虑当你进行某些操作的时候,才去加载这个子控件。归根到底,这就是在合适的时候,做合适的事情。与我们强调要掌握控制器生命周期方法执行的先后顺序,在合适的方法里面执行相应操作的思想是一脉相承的。以下是懒加载的使用的一个例子:
分析:_noNetview的显示时机是我点击了控制器的view才需要显示,也就是说它不一定是需要显示的,也就是说一定需要创造出来。那么使用懒加载的就很好解决这图形开销的问题。特别是当内存吃紧的时候,使用懒加载这种延迟加载,可以减少内存的暴涨问题。
2.懒加载的一个巧用
懒加载的设计模式其实跟单例有点像--对象的内存地址都是同一个!你会发现,ViewController没有销毁的时候,你调用self.noNetView这getter方法,得到的对象都是你一次调用时候的那个noNetView对象。那么根据这个特点,能够很好解决重复展示的问题,例如是同一个界面,提示控件的重复展示。试想一下,有时候,我们一个界面可能有几个数据请求的接口(我就真的遇到过这样的,或许你会觉得接口设计的不合理!),当某一个接口没请求到数据的时候,你想给用户提示没获取到某一部分接口数据。但是当几个接口都没获取到数据时候,是不是可能很多个提示重复显示?那么此时使用懒加载就很好解决重复显示的问题。请看一下的例子
分析:当一个接口因为token失效没有获取到信息时候,调用[self.alertView show]给用户一个提示,那么就算多个接口因为token失效没有获取到信息,多次调用[self.alertView show],那么最终展示在用户界面的alertview也只有一个。
最后,朋友们如果有不同的看法,欢迎评论交流!