Response<AnyObject, NSError> 在 Alamofire4/Swift3 中未声明的类型

Posted

技术标签:

【中文标题】Response<AnyObject, NSError> 在 Alamofire4/Swift3 中未声明的类型【英文标题】:Response<AnyObject, NSError> undeclared type in Alamofire4/Swift3 【发布时间】:2016-12-30 23:18:28 【问题描述】:

我正在将旧代码更新到新的 ios 和 Swift 版本,因此是 Alamofire 版本,到目前为止,这一直是一个令人头疼的问题。我有这段代码,我已经简化了

fileprivate func fetchOuttings(_ type: MyType, callback: ((Response<AnyObject, NSError>) -> ())?) 

    /* ... */

    Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: header).responseJSON(completionHandler:  response in
        if let _callback = callback 
            _callback(response)
        
    )


在 Swift3/Alamofire4 更新后的函数签名中,我没有得到“使用未声明的类型响应”,我不知道如何解决这个问题。我一直在寻找Alamofire 4 migration,但找不到任何东西。有人有想法吗?

【问题讨论】:

【参考方案1】:

Response&lt;AnyObject, NSError&gt; 现在是 DataResponse&lt;Any&gt;。看看new implementation of responseJSON

【讨论】:

【参考方案2】:

正如@Rob Napier 所说,现在它已更改为DataResponse。例如,如果您想要responseString,它应该看起来像这样

DataResponse&lt;String&gt;而且,它将处理.failure部分中的任何错误。你必须在新的Alamoire 中关注更多。最好在 github Alamofire 中参考他们的文档,此外,如果您想了解新的 Router 类实现,请使用 *** Question。

【讨论】:

以上是关于Response<AnyObject, NSError> 在 Alamofire4/Swift3 中未声明的类型的主要内容,如果未能解决你的问题,请参考以下文章

上下文闭包类型 Response<AnyObject> -> void 需要 1 个 agrument,但 3 个在闭包主体中

AnyObject 快速字符串化

无法将 JSON 对象映射到领域

无法将 '[String : AnyObject]?.Type' 类型(又名 'Optional<Dictionary<String, AnyObject>>.Type)的值转

在 Swift 中使用 JSON 的 Alamofire 请求后,如何在 AnyObject 中转换 <AnyObject> 响应?

如何将 Array<AnyObject> 转换为空数组变量?