gpt4 book ai didi

ios - 如何编写 PrimitiveSequence 扩展名包括

转载 作者:行者123 更新时间:2023-11-28 05:41:40 25 4
gpt4 key购买 nike

我用 Moya 和 RxSwift 编写网络层,服务器响应 JSON 如下:

{ "code": 200, "msg": "", data: {}}

我只想在成功时返回数据,代码等于 200,如果代码不等于 200 则返回错误,我该怎么办?

我试着写这样的代码

extension PrimitiveSequence where TraitType == SingleTrait, ElementType == BaseBean<T: Codable> 

这是响应对象的代码:

struct BaseBean<T: Codable> : Codable {
let code: Int
let msg: String
let data: T?

func map() throws -> T {
if code != 200 {
throw ApiError(reason: msg)
}
if data == nil {
throw ApiError(reason: "Empty Data")
}
return data!
}
}

我期待这样的调用方式

  static func userInfo(params: UserInfoParams) -> Single<UserInfo> {
return provider.rx.request(.userInfo(params: params)).map(BaseBean<UserInfo>).map()
}

最佳答案

试试这个。

func userInfo(params: UserInfoParams) -> Single<UserInfo> {
return provider.rx.request(.userInfo(params: params))
.map(BaseBean<UserInfo>)
.map { $0.map() }
}

我认为您不应该将您的函数命名为map(),最好是类似于validatedData()

关于ios - 如何编写 PrimitiveSequence 扩展名包括 <T : Codable>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com