ios - Alamofire 无法推断当前上下文中的闭包类型

标签 ios swift alamofire

我正在为 DataRequest 创建扩展以记录事件

func log() -> Self {
        let responseSerializer = DataRequest.jsonResponseSerializer(options: .allowFragments)
        return response(queue: nil, responseSerializer: responseSerializer) { response in
            if let object = response.result.value {
                /* do the job */
            }
        }
}

得到错误Unable to infer closure type in the current context 因为它有 (DataResponse<T.SerializedObject>) -> Void通用类型,有没有办法显式设置类型来修复这个错误?

Alamofire 版本: 4.7.2 Xcode 版本: 9.3 Swift 版本: 4.0 运行 Alamofire 的平台: iOS

最佳答案

func log() -> Self {
        let responseSerializer = DataRequest.jsonResponseSerializer()
        return response(responseSerializer: responseSerializer) { [weak self] response in
            guard let _self = self else { return }
            _self.printRequestString(response)
        }
    }

效果很好。

关于ios - Alamofire 无法推断当前上下文中的闭包类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50583101/

相关文章:

ios - Alamofire:如何顺序下载文件

ios - 我无法在 UIViewController 中访问相机

iPhone 使用 AVCaptureVideoPreviewLayer 拍摄增强现实屏幕截图

ios - 无法使用类型为 'setValue' 的参数列表调用 '(Any?, (Error?, DatabaseReference) -> Void)'

swift - Alamofire.request(.GET, "www.example.com") 错误

swift - Alamofire 打印请求为 nil

ios - 快速观察或跟踪每个功能的进度条

ios - 如何快速调用另一个类的方法

ios - Swift 将 TableView 分成两部分

ios - 使用 p2.OAuth2 获取 soundcloud token