简单的封装网络下载almofire(一)

     网络下载是作为一个iOS程序必须懂得的技术.虽然已经有大牛封装非常好用的下载sdk,功能也非常强大,并且基本上你都不用怎么在添加新的功能就可以直接使用.非常方便.
   但是有个问题,如果我们直接使用他们的sdk,一旦他们放弃了跟新,或者说,我们要换一个比这个更好用的sdk,那么问题就来了,你需要把你所写的下载代码全部换掉,如果是个小工程,还不算什么事,如果大工程,那么你就麻烦了.需要一个一个的改,多坑啊...我代表宝宝受不了大哭大哭

  不过不要紧,下面我们来封装一下,第三方下载的sdk.第三方下载的sdk,有很多,就拿almofire举例子了,

  1.首先下载almofire,这个自己google吧....好吧这里有链接.Almofire

  2.创建自己的封装类HttpRequestOperation

  3.实例化分装类

  下面一步一步的讲解.

  1.下载Almofire

      这个在GitHub上已经有了,可以直接下载,并且上边也有说明,具体的就看他们的说明文档,如果你仔细看的话,他也是不建议直接使用,而是也需要你封装一下的.

  2.创建自己的封装类HttpRequestOperation

     这个使用swift写的,我就直接用swift代码讲解了.首先需要定义一个下载的管理类,Manger 实例 manager,因为它是一个单例类,所以只需要使用这个实例就可以了.

     然后需要定义一个结束的回调的方法,

<span style="font-size:18px;">   typealias finishedTask = (data: AnyObject?,success: Bool) -> Void
</span>

    这个是在下载结束后回调的方法,还需要一个URLString.下载的地址,我建议定义成字符串类型,在真正使用的时候在转换成URL类型.

    下面就是下载方法:

     

func main() {
        
    
        
        let url = NSURLRequest(URL: NSURL(string: stringURL)!);
        let request = manager.request(url);
        requestNet = request;
        request.response { (reqs, respose, data, error) in

            
            dispatch_async(dispatch_get_main_queue(), {
                
                guard let tempData = data else {
                    self.finiTask(data:<span style="font-family: Arial, Helvetica, sans-serif;">error</span>,success: false);
                    return;
                }
                self.finiTask(data: tempData,success: true);
            })
            
        }
        request.resume();
 }

   上面的很简单,没有什么太难的,有一点需要注意一下,就是结束回调的方法self.finiTask(),一定不能为空,否则会出问题.

   3,实例化分装类

   最好不要直接这样使用,应为也有很多麻烦事,最好在继承这个类,然后在使用,那么这么简单就已经封装好了.

    总结:

    上边写的很简单,但是也有很多地方要注意,最主要的还是上边的函数,基本上已经够用的,他的方便之处是,如果以后要换下载第三方的sdk ,那么你直接把main()函数操作换掉即可,哦太好了,只需要一个方法技能,就能解决所有的问题,是不是有点小激动.哈哈,好吧,好东西总是要分享的.

    温馨提示:

     如果有不明白之处或者想要源码.我都可以提供给你.你只需要留言,并留下联系方式,我就发给你.如果大家注意到标题,会发现有个一,那就说明还会有二,嘿嘿,希望继续关注我的博客,我会继续为大家讲解里边的小秘密的.




     



  

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值