gpt4 book ai didi

swift - 如何在 AlamofireObjectMapper 的 keyPath 后面获取对象数组?

转载 作者:搜寻专家 更新时间:2023-11-01 07:11:25 24 4
gpt4 key购买 nike

我连接的服务器总是在“数据”键后面返回它的数据对象,就像这样(大大简化):

{
"data" : [ { "id" : 1,
"name" : "howdy"
},
{ "id" : 2,
"name" : "dowdy"
}
]
}

现在,我想使用 Alamofire 的 ObjectMapper 4 将数组中的对象(带有 id、名称)映射到它们适当的 Mappable 对象。但是,我找不到关于如何获取“数据”keyPath 后面的数组的任何示例代码或解释。 json 根级别的数组示例很多。

我是否必须使用“数据”映射创建一个单独的可映射对象并从那里链接数组映射?

我是否必须使用我自己的 ResponseObject 和填充的 keyPath 创建 DataRequest 的扩展?

基本上:如何将 ResponseObject 上的 keyPath 从默认的 nil 设置为 anything?像这样的东西:

        .responseArray { response(keyPath:"data"): DataResponse<NameModel> in

这似乎是一个简单而常见的问题,让我感到困惑,我找不到任何样本:-/

最佳答案

事后看来,答案非常简单。如此简单,以至于没有人费心用它做一个例子,所以这里是:

keyPath 的默认初始化器为 nil。要使用您自己的 keyPath,您必须像这样将 keyPath 添加到 responseArray:

   .responseArray(keyPath: "data") { (response: DataResponse<[NameModel]>) in
switch response.result {
case .success(let items):
var names: [NameModel] = []
for name in items {
names.append(name)
}
completion(nil, names)
break
case .failure(let error):
self.handleError(error)
completion(ServiceError.jsonError, nil)
break
}

我希望这对那些一直在查看文档并思考:怎么做的人有所帮助?

关于swift - 如何在 AlamofireObjectMapper 的 keyPath 后面获取对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44699074/

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