Alamofire.request 不与自定义对象映射

Posted

技术标签:

【中文标题】Alamofire.request 不与自定义对象映射【英文标题】:Alamofire.request does not map with custom object 【发布时间】:2017-02-26 13:40:40 【问题描述】:

我试图在 swift 中创建一个示例应用程序,该应用程序使用 alamofire 和 alamofire 对象映射器进行映射。这个示例应用程序的整个想法是将 json 响应与我制作的自定义模型进行映射。但是当我尝试循环对象列表时,它说自定义对象不兼容并且它是一个字典。

这是我的网络层代码

// MARK: retrieve country list
func retrieveCountryList(completion: @escaping (_ result: NSArray) -> Void) 
        Alamofire.request("https://restcountries.eu/rest/v2/all").
responseJSON(response: DataResponse<Any>) in
            let result = response.result.value;
            let resultsArray = result as! NSArray
            completion(resultsArray)
      
 

和模型

class Country : Mappable 

    var name:String?
    var capital:String?

    required init(map : Map) 
    

    func mapping(map: Map) 
        name <- map["name"]
        capital <- map["capital"]
    

似乎响应不直接与模型映射。可能是什么问题?

alamofire 4.3 版

【问题讨论】:

使用responseObject而不是responseString 响应对象。不允许在 almofire 最新的一个 【参考方案1】: 您首先需要安装“AlamofireObjectMapper”。 您应该通过添加“pod 'AlamofireObjectMapper'”和命令“pod install”来添加到您的项目中。 现在在您的 API 调用类“import AlamofireObjectMapper”中输入“.responseObject”,您会得到它。

【讨论】:

以上是关于Alamofire.request 不与自定义对象映射的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire.request().responseObject 不返回响应

NSMutableArray 与自定义对象?

NSDictionary 与自定义对象

Quickblox 内容与自定义对象文件

Flutter ReorderableListView 与自定义对象

将对象列表与自定义键进行比较