对Alamofire进行封装,模块化处理。
一、cocoapods导入Alamofire
参照Alamofire在github是上给出的导入流程,导入Alamofire库。如下图所示
在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
添加代理,设置单例。变现写相应的数据接口,以登陆为例。
实现请求失败代理方法,发送请求失败通知给控制器。
实现请求成功代理方法,根据服务器不同状态,根据服务器返回的不同状态发送通知给控制器。
三、控制器用法
在控制器即将显示时建立观察者
在控制器消失时消除观察者
方法实现