【问题标题】:How to implement Codable with AFNetworking如何使用 AFNetworking 实现 Codable
【发布时间】:2021-08-29 13:46:42
【问题描述】:

我正在开发一个 Swift 和 Objc 的混合项目,AFNetworking 在其中实现以用于网络调用。我在要实现 Codable 模型的地方创建了 swift 文件,但由于 AFNetworking 以 NSDictionary 或 id 格式响应响应,因此我无法使用可解码的。 我需要一种方法,以便 AFNetworking 返回我可以直接与可解码使用的 NSData/Data 格式响应对象

【问题讨论】:

  • @Kamil.S 是的,但这没有用。 AFNetworking 已经发展了对该答案的尊重。但是我设法通过序列化获得了解决方案。虽然感觉不是一个好的解决方案。

标签: swift objective-c afnetworking codable


【解决方案1】:

使用默认的AFHTTPResponseSerializer作为你的responseSerializer,你将在success闭包的第二个参数中获得响应数据。您只需将其输入为Data

let manager = AFHTTPSessionManager()
manager.responseSerializer = AFHTTPResponseSerializer()
manager.get(urlString, parameters: nil, headers: nil, progress: nil, success: { task, object in
    guard let data = object as? Data else { return }
    let decoder = JSONDecoder()
    do {
        let decoded = try decoder.decode(MyType.self, from: data)
        print(decoded)
    } catch {
        print(error)
    }
}, failure: { task, error in
    print(error)
})

【讨论】:

    猜你喜欢
    • 2019-04-19
    • 2018-07-11
    • 2014-06-16
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多