一、复习上午的内容 1.上午,我们讲了这些内容,接下来,我们继续做这个案例,异步下载网络图片, 做它的话,上午我们最后一节课,做了这么一件事情,上午我们做的还不是很麻烦,下午的话,我们就去了解一下就行了,了解一下,我们做这件事情的话,会遇到什么问题,以及是怎么去解决的,看我们做的过程,就OK了, 我们回忆一下,上午的时候,我们做这件事情,都解决了哪些问题,或者说我们的步骤是什么,我们把步骤写一下吧, // 8 异步下载网络图片 // 8.1 模型类 我们先写了一个模型类,在模型类中去加载plist,跟以前不一样的是,我把加载plist、以及字典转模型这件事情,写到了模型类里边,我们把一个类,比做是公司中的人,公司中的每个人去做不同的事情,不能让所有的事情都交给老板去完成,我们雇这么多人的目的,就是相应的做、完成不同的事情的,所以我们创建一个类,每一个类,各司其职,分别做自己相应的事情,每一个类中不要写太多的代码, 如果一个类中,代码太多了,会有什么样的问题,假设Controller中,2000行代码,不容易维护,将来出问题了,找错误的那段儿代码,都不方便去找,所以,我们不要把所有的代码都写到一个类中来,一个类中的代码不适合写太多,这是我们的第一步啊,我们写了一个模型类,面向对象的三大特点是什么,封装、继承、多态,我们总说封装很简单,但是我们真正用的时候,却总是想不起来封装,把代码要封装一下, // 8.1 模型类 把加载plist和字典转模型 封装 // 8.2 数据源的方法 name和download // 8.3 同步下载图片 ----- 卡顿 // 8.4 异步下载图片 ------ 图片看不到 为什么图片不显示,因为cell内部的控件是懒加载的,这是第一, 还有就是,当cell返回之前,会调用cell的layoutSubviews,布局子控件,但是cell返回之前,我们这个imageView,是不是没创建好呢,没创建好呢,所以就没有去设置它的大小和位置,这是图片看不到的原因,有两个: 1)cell内部的子控件是懒加载 2)cell返回之前会调用cell的layoutSubviews,cell返回之前,cell的imageView还没有创建好,图片还没有下载完成,没有设置cell的imageView的大小和位置 然后,我们怎么解决的,使用占位图片, // 8.4 异步下载网络图片 ----