Swift

swift中泛型的应用之网络请求返回model

2021-09-06  本文已影响0人  梁森的简书

不同网络接口请求返回数据结构各式各样,对应客户端的Model也是千差万别,我们在使用网络请求类的请求方法的时候希望给该方法传一个model类型,接口请求成功后返回一个对应的model,这个使用就要使用到泛型(所有的model类型都是遵守了某个协议的类型)。
代码:

func send<T>(mapObjectType: T.Type, completion: NetCompletion?) where T : BaseModelProtocol

使用:

GoodsRequest.homeData.send(mapObjectType: HomeModel.self) { result in
            switch result {
            case.success(let result):
                guard let model = result.model as? HomeModel else { return }
                self.data = model
                finishCallBack(model, nil)
            case .failure(let error):
                finishCallBack(nil, error)
            }
        }

其中的HomeModel是遵守了BaseModelProtocol协议的。

上一篇下一篇

猜你喜欢

热点阅读