学习过程中,要求我不使用RxSwift,其实对RxSwift一直比较模糊不清,这个框架到底是干啥的。
问了哥:
主要是:响应式编程,订阅,数据流处理。弄不好,就容易出问题。而且现在项目用这个的也少了,不仅如此根据公司的性质可能也不会让使用,所以在项目源码中去除这个框架,去除的过程中又深入学习了一些Moya的东西。
let NetWorkManage = DefaultRepository.shared.provider!
class DefaultRepository{
static let shared = DefaultRepository()
var provider:MoyaProvider<DefaultService>!
private init() {
var plugins:[PluginType] = []
if Config.DEBUG{
plugins.append(NetworkLoggerPlugin(configuration: NetworkLoggerPlugin.Configuration(logOptions: .verbose)))
}
provider = MoyaProvider<DefaultService>(plugins: plugins)
}
}
首先比较重要的是:
var provider:MoyaProvider<DefaultService>!
这句代码提供provider来进行Moya请求,在此之前的封装的Service这个类做的事情,是属于网络请求Moya的模型
通过这个其实就可以用
NetWorkManage.request来请求网络
NetWorkManage.request(.sheetDetail(data: data), completion: { result in
switch result{
case .success(let response):
let data = response.data
case .failure(let error):
print(error)
}
})
同时如果把接口写成函数的话最好是放在vc里面,如果是可复用的接口的话写成函数就可以放到Service那里
注意:
网络请求业务数据,其实是一些页面独有的业务
所以在对应的页面直接networkmange.request() 写对应的逻辑就好了。