【问题标题】:Alamofire.upload SwiftLint violationAlamofire.upload SwiftLint 违规
【发布时间】:2019-07-21 09:08:09
【问题描述】:

使用 Alamofire 上传图像的代码会触发 SwiftLint 违规。怎么解决?

Alamofire.upload(multipartFormData: { (multipartFormData) in

                multipartFormData.append(imageData, withName: "profileImage", fileName: "image.png", mimeType: "image/jpg")
            }, usingThreshold: UInt64.init(), to: requestURL, method: .post, headers: headers) { (result) in
                switch result {
                case .success(let upload, _, _):
                    upload.responseJSON { response in
                        if let error = response.error {
                            completionBlock(.failure(error as NSError))
                            return
                        }
                        completionBlock(.success(response))
                    }
                case .failure(let error):
                    completionBlock(.failure(error as NSError))
                }
            }

具有尾随闭包违规的多个闭包:尾随闭包 传递多个闭包参数时不应使用语法。 (multiple_closures_with_trailing_closure)

【问题讨论】:

  • 不相关但为什么要传递UInt64.init() 而不是0 等实际值?
  • @rmaddy,将其替换为 0。谢谢

标签: swift alamofire swiftlint


【解决方案1】:

当有多个闭包参数时,错误告诉你不要使用尾随闭包语法。

Alamofire.upload(multipartFormData: { (multipartFormData) in
    multipartFormData.append(imageData, withName: "profileImage", fileName: "image.png", mimeType: "image/jpg")
}, usingThreshold: UInt64.init(), to: requestURL, method: .post, headers: headers, encodingCompletion: { (result) in
    switch result {
    case .success(let upload, _, _):
        upload.responseJSON { response in
            if let error = response.error {
                completionBlock(.failure(error as NSError))
                return
            }
            completionBlock(.success(response))
        }
    case .failure(let error):
        completionBlock(.failure(error as NSError))
    }
})

【讨论】:

  • 我收到此错误:对成员'upload(_:to:method:headers:)'的模糊引用
  • 您是否添加了interceptor 参数名称?我认为这是在查看文档后正确的。
  • 我已经复制粘贴了你的答案
  • 查看文档并验证最后一个参数的名称。
  • 已检查。它是编码完成。现在它起作用了!更新您的答案并检查它是否正确。谢谢!
猜你喜欢
  • 2020-12-04
  • 2021-02-09
  • 2021-09-06
  • 2017-07-30
  • 2020-09-06
  • 2019-11-24
  • 2018-08-04
  • 1970-01-01
  • 2018-02-03
相关资源
最近更新 更多