解决UITableview里面滑动时重复下载,主线程卡顿问题
在UITablview里面滑动的时候,返回cell的那个方法会不断的被重复调用,导致数据多次被下载,并且每次下载都需要加载网络数据,耗时太多,卡顿
2个问题:
重复下载:每次滑动,重复调用
卡顿:每次调用都发送网络请求,耗时
内存缓存:创建一个临时字典用于保存数据,也就是做内存缓存(内存缓存在程序每次启动的时候,都会重新下载)
但是沙盒缓存:程序再次启动不需要重新下载
- documents:存放在documents里面文件会被自动备份,我们下载的文件不能够放在这里,如果放在这里,苹果会拒绝我们的应用上架
- tmp:放在这个里面的话,文件可能会随时被删除,也不可以
- cache:所以一般情况下,我们需要缓存内容,都需要放在cache里面
可以使用NeSSearchPathForDirectoriesInDomain 获取到cache的路径
NSCacheDirectories ,
用户搜索区域内NSUserDomianMask ,YES表示:显示全路径
优化后:(在下载数据之前,先进行判断,如果缓存里面有,直接赋值,如果没有再重新下载,下载之后顺便存在缓存里面)
好处:不会在重复多次下载