优化table的图片加载

   table的优化,貌似都说烂了,面试必考,网上也各种帖子,不过俺还是想mark一下,只谈图片加载。

  其实就是一个耗时操作的处理,简单来说就是cache -> file -> network(有类似经验的就可以不看了^^)。

  内存加载是最快的,UIImage的imageNamed和LazyTableImage都是如此,只是图片多了就杯具鸟。折中一下,就可以用NSCache,设置一下limitCount就能避免内存问题。基本20的count在4-5屏的滚动下毫无压力。话说AFNetWorking就用的NSCache。

  file和network就简单了,file存在就GCD加载,不用GCD当然也行,不过图片上百K的话就会小卡了,用GCD就能保持50多的FPS;file不存在就走network,参照LazyTableImages即可,就两点:1.怎么避免重复下载  2.怎么适当刷新(避免只简单使用GCD,GCD只把同步操作包起的话会导致图片返回时view已经不是当时的view)

猜你喜欢

转载自hua397.iteye.com/blog/1886552