(转载)站在巨人肩上的微创新,对SDWebImage的扩展,源码分享了<1月15日再次更新>
SDWebImage是一个可以自动管理图片加载的类库。
因为大家都知道,图片加载非常耗流量,所以在移动平台上对于图片的处理就要异常小心了。因此就必须用到本地缓存了。
而我之前写的一个小型App,因为每张图片的名字都是GUID生成的,不会被修改了。所以会每次都检查一下本地是否有这个文件名的文件存在了。这样最大限度的减小了网络流量,不需要每次都加载一次。
不过呢,SDWebImage的功能不仅仅仅限于此,功能更为强大。最基本的有一个UIImageView的category,用法很简单
[imageView setImageWithURL:[NSURL URLWithString:@"http://www.ioslib.com/ioslib.png"]];
另外呢,还有一个SDWebImageManager,使用它可以进行一些异步加载的工作,关于这部分内容 ,可以参见官方的文档:
SDWebImage是托管在Github上的:http://github.com/rs/SDWebImage
但SDWebImage的功能却仅限于image类型,因此本人对它进行了扩展。
SDWebData是将原来仅限于image的SDWebImage扩展至对所有的NSData提供了支持,并增加了一些新的方法。
如果你的应用与网络交互有关,那么你一定会喜欢的。
应楼下要求,我做了一个简章的Demo。
PS:(同志们啊,别只下不顶嘛,这样我会很伤心的哦,这可是我花了一整天写出来,并且后期还修改了一些小bug升级了两次到1.0.2,确保没有问题才敢发上来的,给点儿鼓励嘛!)
我太感谢版主Gagaga大大了,竟然得到了精华帖,看来辛苦都是值得的,感动的泪水哗啦啦的流啊~~~
4月17日:经过几次更新,目前SDWebData代码较为复杂,这是一个更加轻量级的网络管理类:http://www.tanhao.me/code/382.html
更新(8月19日):32楼的 luckyma316 指出了附件中的SDWebDataTest示例代码中一个问题,为了不误导大家,我特此进行了改动,多谢大家的关注!
更新(12年1月15日凌晨)
SDWebData v1.1.0
更新:
*.将库中所有代码修改为ARC的代码,(仍然使用手动release,retain的工程不能使用这个版本的代码);
1.SDDataCache更名为SDDataCacheManager,因为这是一个单例类,这些的命名更统一规范;
2.SDDataCacheManager新增了memCacheMaxSize属性(单位B),默认为2M(2*1024*1024);
3.SDDataCacheManager新增了cacheMaxCacheAge属性(硬盘缓存的过期时间,单位秒),默认为1周(7*24*60*60);
4.SDWebDataManager的回调方法中,去掉了SDWebDataManager的参数,因为SDWebDataManager本身为单例类,返回该对象无实质意义;
5.SDWebDataManager所有的请求,在属性中增加类型为id的context参数,在回调中并返回,方便同一个delegate发起不同的请求;
6.SDWebDataManager增加方便的Post请求方法,并且支持文件上传;
7.SDWebDataManager新增MaxConcurrentCount属性,用于限制并发请求的数量,当同时请求数量过多时,可防止对主线程的拥塞.
更多更新的情况,欢迎点击我的博客:http://www.tanhao.me (哈哈,算是广告了)
[ 此帖被tanhaogg在2012-04-17 21:47重新编辑 ]
|
附件: SDWebDataTest.zip (62 K) 下载次数:1355
附件: SDWebData_1.0.2.zip (29 K) 下载次数:1057
附件: SDWebData_1.1.1.zip (48 K) 下载次数:599
|