swift 封装网络请求(Alamofire)

对Alamofire进行封装,模块化处理。

一、cocoapods导入Alamofire

参照Alamofire在github是上给出的导入流程,导入Alamofire库。如下图所示

github截图

在Build Phases  ->  Link Binary With Libraries 中添加Alamofire.framework

二、文件结构目录

模块截图

BaseModel.swift  ----- 包装服务器数据,发送通知给控制器

ModelDelegate.swift  ------ 定义协议(请求成功、失败协议)

ModelGlobals.swift  ------- 定义关键字

RemoteDataResolver.swift  -------- 网络请求

UserModel.swift ----- 继承BaseModel,主要定义与用户相关的API

1、BaseModel.swift

在init方法中初始化NotificationCenter.

文件截图

发送请求成功并且服务器没有返回错误提示发送通知方法

文件截图

发送请求成功,服务器返回错误提示发送通知方法

文件截图

发送请求失败发送通知方法

文件截图

2、ModelDelegate.swift

文件截图

3、ModelGlobals.swift

文件截图

文件中相关字段定义根据项目的需要自行进行定义。

4、RemoteDataResolver.swift

添加Alamofire库,进行单例定义,初始化队列,为了保证线程要给队列加锁。

文件截图

构建请求字典

文件截图

构建请求字典,接口参数带有api_token方法

文件截图

用数组模拟队列进行网络请求,上锁来维护线程安全。保证网络请求按顺序进行。

文件截图
文件截图
文件截图

5、UserModel.swift

添加代理,设置单例。变现写相应的数据接口,以登陆为例。

文件截图

实现请求失败代理方法,发送请求失败通知给控制器。

文件截图

实现请求成功代理方法,根据服务器不同状态,根据服务器返回的不同状态发送通知给控制器。

文件截图

三、控制器用法

在控制器即将显示时建立观察者

文件截图

在控制器消失时消除观察者

文件截图

方法实现

文件截图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容