您现在的位置是:主页 > 数据库技术 > 数据库技术

如何解析AFNetworking框架的解读

IDCBT2022-01-12服务器技术人已围观

简介今天给大家介绍一下如何解析AFNetworking框架的解读。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起

今天给大家介绍一下如何解析AFNetworking框架的解读。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。

做ios开发,AFNetworking 这个网络框架肯定都非常熟悉,也许我们平时只使用了它的部分功能,而且我们对它的实现原理并不是很清楚,就好像总是有一团迷雾在眼前一样。

接下来我们就非常详细的来读一读这个框架的代码,我们的目标就是理解了它的思想之后,能够明白我们的请求是如何实现的,我们的代码哪里还需要进行改进,如果能够更进一步,我们能够总结出一套适合大部分应用的网络架构思想。

能够让一些人从中受益。

我们先来看看整个框架的文件系统,我们先不对每个文件的作用进行说明,在整个源码解读最后的一篇中我们会对整个框架进行总结。会有一张清晰的图表来说明这个问题。

我们在看一个框架的时候呢,可以这样先看,先看每个文件的头文件,也就是.h文件

可以看到,有的头文件是包含了别的头文件的,在不考虑系统的头文件的情况下,我们能够发现一些比较独立的类,从上图中,我们可以看出

比较独立的类有:

1.AFURLResponseSerialization.h

2.AFNetworkReachabilityManager.h

3.AFURLRequestSerialization.h

4.AFSecurityPolicy.h

下面就介绍AFNetworkReachabilityManager.h的内容,这个是用来监控网络环境变化的类。

#import <SystemConfiguration/SystemConfiguration.h>

通过导入了这个头文件,我们得知:网络监控的实现是依赖SystemConfiguration这个api的。说明这个api能够提供这样的功能,至少让我们明白了我们平时都会导入它的一个用途。

这是一个枚举封装,还是遵循一个使用枚举的原则,当满足一个有限的并具有统一主题的集合的时候,我们就考虑枚举。在这里作者是枚举了4种类型。这几种类型能够满足我们开发中大部分的功能,如果不满足,可以自行进行扩展。

NS_ASSUME_NONNULL_BEGIN
NS_ASSUME_NONNULL_END

这个是为了swift的可选类型配添加的,在这两个终点的内容的参数默认都是nonnull的。

这段文字是对这个类的说明。我们估且不去管它说了什么,在看看苹果官方的

这样的内容会出现在一个属性或者方法的上方,目的是对其内容的解释。我看到这里就想到了我们平时的开发,我们能够把每段代码都当成是api的开发,也把注 释写的详细一点。曾经看过两种不同的说辞,一种是说把代码注释尽量少些,要求代码简介可读性强。另一种是说注释要详细,着重考虑他人读代码的感受。个人感 觉还是写详细一点比较好,因为可能过一段时间之后,自己再去看自己当时写的代码可能就不记得了。很有可能在写这些繁琐的注释的过程中,能够想到些什么,比 如如何合并掉一些没必要的方法等等。

标签:

很赞哦! ()

本栏推荐