gpt4 book ai didi

ios - Alamofire 的自定义、基于内容的验证器(在 Swift 中)

转载 作者:搜寻专家 更新时间:2023-10-31 22:33:17 24 4
gpt4 key购买 nike

我知道您可以添加状态代码和内容类型验证器,但我真的很想能够根据结果内容编写自己的验证器 - 基本上我想确保我返回的 json 包含一些字段,并且它们的值是有效的。

我正在开发的应用程序目前的设计方式是有一个服务器类处理所有 api 调用,响应对象返回给调用它的任何人,因此他们可以执行他们的逻辑/更新 ui 等。

现在我在所有请求上都有一个状态码验证器,所以我不需要在所有外部都有它,但我有几个 api,需要自定义验证逻辑,这意味着我必须在所有调用它的地方,而且我不能使用这个惊人的语法:

switch resp.result {
case .Success(let value):
print("yay")
case .Failure:
print("nay")
}

我喜欢任何可以帮助我找到解决方案的答案/指针,
非常感谢大家! :)

最佳答案

我最终遇到了这个完全相同的问题,发现您想做的是编写自己的响应序列化程序并停止使用 .validate()。

我使用的序列化程序非常非常接近开箱即用的 JSONResponseSerializer,除了我检查错误。

我对股票序列化程序所做的唯一更改是在 do-catch 语句中:

do {
let JSON = try NSJSONSerialization.JSONObjectWithData(validData, options: options)
if let responseDict = JSON as? NSDictionary, apiError = NSError.APIErrorFromResponse(responseDict) {
return .Failure(apiError)
}
return .Success(JSON)
} catch {
return .Failure(error as NSError)
}

APIErrorFromResponse 只是 NSError 的扩展方法,它检查 JSON 中的错误字典并从中填充自定义 NSError

如果您还没有找到解决方案,希望这能为您指明正确的方向!

关于ios - Alamofire 的自定义、基于内容的验证器(在 Swift 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35067884/

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