美文网首页
GCD和网络加载的一点整理(二)

GCD和网络加载的一点整理(二)

作者: Lance_lg | 来源:发表于2017-09-11 19:21 被阅读0次

iOS开发中经常会碰到发起一个网络请求,还要在开始的时候写加载菊花转圈的代码,在网络请求示完成之后还要隐藏掉菊花转圈,甚至有时候网络请求失败或者服务器返回失败信息还要进行显示,针对这些都是繁杂的活,最近就想着把这两者封装结合起来,采用配置参数的形式来控制

1.配置转圏有信息提示类,对第三方库MBProgressHUD进行封装,新建LNMBProgressHUD继承于MBProgressHUD,方便以后扩展,再建MBManager类进行对转圈和信息提示进行管理,负责显示和查找显示在哪个视图上,全部用类方法来实现

查找要显示在哪个视图上,通过对window的rootViewController来层级查找,采用递归的方法来找到当前处在最顶层的控制器,从而把视图加载到这个控制器上,当然,如果当前控制器的视图未显示,也不会加载

2.配置网络请求类LNHttpManager 继承于AFHTTPSessionManager,单例形式存在,提供GET, POST方法,自定义相关回调,其中网络加载的枚举如下 

在网络请求发起和结束之后作相应的处理即可

这里用了一个字典signDic来保存一个网络请求的配置枚举,以task.taskIdentifier作key来标识具体哪 个请求,请求完成之后根据配置作相应的处理

这样在发起网络请求时,就无需要写多余的代码,只需要调起网络请求类,传递一个参数即可,针对日常使用频率较高的,还封装了几个更简洁的方法

调起网络例子,发起网络会转圈,请求完成之后会自动消失,而在调起端无需要再关心转圏的加载与隐藏

其中显示提示信息的类和网络请求类没有直接的从属关系,两个类可单独拿出来使用,达到一定程度的解藕,写了一个初步的,以后可慢慢完善Demo链接,Demo中还包含了对GCD,RunLoop ,NSOperationQueue,RAC的一些见解和实例。

相关文章

  • GCD和网络加载的一点整理(二)

    iOS开发中经常会碰到发起一个网络请求,还要在开始的时候写加载菊花转圈的代码,在网络请求示完成之后还要隐藏掉菊花转...

  • GCD和网络加载的一点整理(一)

    项目开发中我们经常遇到在一个页面要同时发起多个请求的情况,并且全部完成才更新UI,这时候就需要用到group 了,...

  • Grand Central Dispatch

    使用GCD组加载多个网络请求 全部返回数据好调用 nofify进行数据的整理:方法1:NSArray * urls...

  • iOS多线程之GCD详解

    原文链接:整理多线程:GCD详解,如有侵权立即删除 一、GCD简介 为什么要用GCD呢? 二、GCD任务和队列 2...

  • GCD整理(二)

    这篇会整理GCD常用的API 目录1、dispatch_after2、dispatch_apply3、dispat...

  • IOS GCD 全面理解

    需求: 通过请求,加载4张图片。。做到按顺序加载,每张加载2S后,开始加载下一张图片, 方式:GCD的线程组 和 ...

  • iOS小知识点(GCD)

    GCD延时加载 主线程更新UI

  • Tensorflow 训练好的模型保存和载入

    方法一 这种存储方式在加载模型时需要再次定义网络结构 模型训练和存储 加载模型 方法二 这种存储方式在加载模型...

  • 【深度学习DL-PyTorch】六、保存和加载模型

    使用 PyTorch 保存和加载模型。 一、 训练网络 二、 保存和加载网络 每次需要使用网络时都去训练它不太现实...

  • iOS 简单知识点总结

    以下内容均来自网络,记下来以供自己学习 1. 比较GCD 和 NSOperation异同 相同点:GCD和NSOp...

网友评论

      本文标题:GCD和网络加载的一点整理(二)

      本文链接:https://www.haomeiwen.com/subject/neifsxtx.html