当前位置: 首页 > 知识库问答 >
问题:

无法将Alamofire 3转换为Alamofire 4,带有一些错误消息

赵雅懿
2023-03-14

我正在尝试转换我的上传图像程序。但在停滞不前的情况下发生了几个问题<我想在这个问题上得到任何建议
bellow以前是Alamofire 3的代码。

    Alamofire.upload(
        .POST,
        "https://uploadURL",
        multipartFormData: { multipartFormData in
            multipartFormData.appendBodyPart(data: imageData!, name: "image", fileName: nowString + "To" + receiverString! + ".jpg", mimeType: "image/jpg")
            for (key, value) in parameters {
                multipartFormData.appendBodyPart(data: value!.data(using: String.Encoding.utf8)!, name: key)
            }
        },
        encodingCompletion: { encodingResult in
            switch encodingResult {
            case .success(let upload, _, _):
                upload.responseString(completionHandler: { (response) in
                    debugPrint(response)
                })

            case .failure(let encodingError):
                print(encodingError)
            }
        }
    )

下面是为Alamofire 4.0.1和swift 3编写的当前代码。(不完整)

    Alamofire.upload(
        multipartFormData: { multipartFormData in
            multipartFormData.append(data: imageData!, name: "image", fileName: nowString + "To" + receiverString! + ".jpg", mimeType: "image/jpg")
            for (key, value) in parameters {
                multipartFormData.append(data: value!.data(using: String.Encoding.utf8)!, name: key)
            }
        },to:"https://uploadURL",
        encodingCompletion: { encodingResult in
            switch encodingResult {
            case .success(let upload, _, _):
                upload.responseString(completionHandler: { (response) in
                    debugPrint(response)
                })

            case .failure(let encodingError):
                print(encodingError)
            }
        }
    )

围绕“multipartFormData”生成错误消息。

“append”的重载存在于以下部分匹配的参数列表中:(数据,withName:String,文件名:String,mimeType:String),(URL,withName:String,文件名:String,mimeType:String)

将“Any”强制转换为“AnyObject”或使用“as!”强制向下转换到更特定的类型以访问成员

我正在寻找解决这个问题的方法。。。

共有1个答案

闻人鸿文
2023-03-14

append方法签名有点变化。您正在使用以下命令:

append(data:name:fileName:mimeType:)

他们将name参数重命名为withName,以符合Swift 3 API设计指南。因此,您应该使用:

append(_:withName:fileName:mimeType:)

修改您的代码如下所示,它应该都可以工作。

Alamofire.upload(
    multipartFormData: { multipartFormData in
        multipartFormData.append(imageData!, withName: "image", fileName: nowString + "To" + receiverString! + ".jpg", mimeType: "image/jpg")
        for (key, value) in parameters {
            multipartFormData.append(data: value!.data(using: String.Encoding.utf8)!, name: key)
        }
    },to:"https://uploadURL",
      encodingCompletion: { encodingResult in
        switch encodingResult {
        case .success(let upload, _, _):
            upload.responseString(completionHandler: { (response) in
                debugPrint(response)
            })

        case .failure(let encodingError):
            print(encodingError)
        }
    }
)

注意:我唯一更改的是name参数,因此改为withName。我去掉了数据标签。

 类似资料:
  • 我正在开发一个android应用程序,我正在尝试使用Volley库。我无法解决的问题是关于JSON的。我检查了我的php文件、结果和Java代码,但仍然得到相同的错误。 有趣的是,截击日志不显示错误消息,但日志显示错误消息。 和 这是我的PHP代码: 结果如下: 和我的Java代码: 我也听说了GSON。这是解决办法吗?有人能帮帮我吗?提前感谢!!

  • 我有这个错误 根据代码 -- 例如,当我不通过将其声明为全局来捕获时,它就可以工作。但是当我在我的函数g范围内声明时,会显示此错误。 您知道问题是什么吗?我如何通过将保持在我的函数本地来解决问题?

  • 问题内容: 在获取json数据时出现错误: JSONArray无法转换为JSONObject JSON生成代码: 在阅读上述json时遇到错误代码有什么问题吗? 问题答案: 更改 至 作为数据值的是JsonArray而不是JSONObject。 为了获取单个ID和字段名称,您应该遍历此JSONArray,如下所示:

  • 问题内容: 我从外部Microsoft SQL 2008数据库接收数据(我通过My​​Batis进行查询)。在理论中,我在“ Windows-1252”上接收数据编码。 我尝试使用以下代码解码数据: 字符串textoFormado = …来自MyBatis的值…; String s = new String(textoFormado.getBytes(“ Windows-1252”),“ UTF-

  • 在godbolt.org中编译代码时,我遇到以下错误: 看起来该错误是在使用std::thread创建线程时出现的。该守则的简化版本为:

  • 我是JSON的新手,但我尝试使用所有的答案,但都不起作用。请帮帮我,我做错了什么。 } 我的JSON用于解析。