无法在 Alamofire 4.0 中使用类型为“(String, withName: String)”的参数列表调用“append”

2024-07-01

我正在使用 Alamofire 4.0 在通过设备/相机选择或录制视频后将视频上传到服务器,但是当我尝试使用append调用上传函数时,在所有append语句中都出现了这个错误,我的代码有什么问题。

第二个问题是我是否想在上传过程中显示进度以及进度百分比,如何通过 Alamofire 实现这一点。

谢谢 :)

读取所选/录制视频的网址后我的代码

 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {


    let mediaType:AnyObject? = info[UIImagePickerControllerMediaType] as AnyObject?

    if let type:AnyObject = mediaType {
        if type is String {
            let stringType = type as! String
            if stringType == kUTTypeMovie as String {
                let urlOfVideo = info[UIImagePickerControllerMediaURL] as? NSURL
                if let url = urlOfVideo {
                    // 2

                    print(url)

                    let URL = try! URLRequest(url: "myurl", method: .post, headers: ["Authorization": "auth_token"])


                    Alamofire.upload(multipartFormData: { multipartFormData in

                        multipartFormData.append(url, withName: "videoFile", fileName: "filename", mimeType: "mov")
                        multipartFormData.append("video", withName: "load")
                        multipartFormData.append("record", withName: "type")

                    }, with: URL, encodingCompletion: { (result) in
                        // code
                    })


                }
            } 
        }
    }
    picker.dismiss(animated: true, completion: nil)

}

关于错误消息:

无法调用 'append' 带有类型为 ' 的参数列表(String, withName: String)'

如果我们看一下append的方法MultipartFormData阿拉莫菲尔:

  • Alamofire/Source/MultipartFormData.swift https://github.com/Alamofire/Alamofire/blob/master/Source/MultipartFormData.swift

我们注意到没有append(...)方法允许第一个参数类型String,但是,这就是您在附加到您的multipartFormData关闭Alamofire.upload.

multipartFormData.append("video", withName: "load")
multipartFormData.append("record", withName: "type")

我相信您正在尝试使用以下方法:

public func append(_ data: Data, withName name: String) { ... }

在这种情况下,您需要将字符串编码为 Swift 类型Data,例如如下:

multipartFormData.append("video".data(using: .utf8)!, withName: "load")
multipartFormData.append("record".data(using: .utf8)!, withName: "type") 

至于你的电话:

multipartFormData.append(url, withName: "videoFile", fileName: "filename", mimeType: "mov")

不变的url以上是类型NSURL。在 Swift 3 中,您应该更喜欢使用 Foundation 类型URL相反,哪个桥接NSURL,但不是同一类型。我们在 Alamofire 4 中看到它特别期望URL类型为append您尝试在上面调用的函数:

public func append(_ fileURL: URL, withName name: String, fileName: String, mimeType: String)

您自己已经注意到,您可以使用一种解决方法来调用此方法absoluteURL的财产NSURL根据你的例子url;但这只是产生一个可选的类型URL。更好的方法就是使用URL键入而不是NSURL从头开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Alamofire 4.0 中使用类型为“(String, withName: String)”的参数列表调用“append” 的相关文章

  • 无需在线即可从 XMPP 获取离线消息

    我们的移动聊天应用程序使用 ejabberd 服务器 我们正在为我们的 IOS 应用程序使用 IOS XMPP Framework https github com robbiehanson XMPPFramework https gith
  • 使用 xctool / xcodebuild 与 XCode Archive 的成功相比出现错误 ITMS-90046

    我有一个命令行脚本 用于编译 存档并将我的 ios 版本提交给 ITC 以进行 TestFlight 部署 它们工作得很好 但我最近在尝试在我的其他工作项目中使用嵌入式框架时遇到了一个问题 我的脚本成功编译并存档了项目 但由于嵌入的二进制冲
  • 是否可以更改 UISearchBar 占位符的对齐方式?

    由于输入语言不同 我需要以不同的对齐方式显示 UISearchBar I saw 这个答案 https stackoverflow com questions 9251592 how to change the alignment of a
  • UIModalTransitionStyleFlipHorizo​​ntal 横向垂直翻转

    在横向模式下 从一个视图 导航控制器堆栈的一部分 转换到另一个视图作为模态视图 并将 UIModalTransitionStyleFlipHorizo ntal 设置为 modalTransitionStyle 视图在横向模式下垂直翻转 动
  • Xcode 4:如何更改 ${EXECUTABLE_NAME} 变量的值?

    我想找到 xcode 4 2 中定义的 EXECUTABLE NAME 全局变量在哪里 您的目标 gt 构建设置 gt 产品名称
  • 文件从 iOS 应用程序传输到 Mac 应用程序?

    是否可以在 Mac 应用程序和 iOS 应用程序之间传输文件 我想通过 Wifi 将 iOS 应用程序中的文档目录中的文件传输到 Mac 应用程序 我该怎么做 嗯 从 iOS 5 开始 就有了 iCloud 由于这仍处于保密协议之下 我只需
  • 使用 NSPredicate 进行反向字符串比较

    我一直在互联网上寻找这个答案 但到目前为止还没有运气 所以我需要咨询这里聪明又友善的人 这是我第一次在这里提问 所以我希望我做得正确 不要重复这个问题 对于我看到的所有示例 搜索字符串是核心数据中存储的内容的子字符串 另一方面 我想实现以下
  • 应用程序挂在 __psynch_mutexwait

    我们的应用程序似乎半随机地挂在 psynch mutexwait 处 它似乎与更新 CoreData 中存储的一堆数据的后台进程有关 但我完全无法弄清楚是谁锁定了导致死锁的原因 以下是 lldb 给我的完整堆栈跟踪 这显然是不完整的 并且线
  • 如果用户应答传入的 iMessage,WKWebView 会崩溃

    我的应用程序发生严重崩溃 CALayer position contains NaN 377 833 nan 具有以下堆栈 Fatal Exception CALayerInvalidGeometry 0 CoreFoundation 0x
  • 导航标题颜色更改问题

    当我弹出控制器时 我面临的导航标题颜色没有改变 请找到下面的代码 ProfilescreenVC swift override func viewWillAppear animated Bool super viewWillAppear a
  • ++ 已弃用,它将在 swift 3 中删除[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将在 swift 3 中被弃用 变量 现在可以写成 variable 1 我怎样才能重写 variable 请回忆一下之间的区别 varia
  • iOS 应用程序在启动时因分发配置文件而崩溃? (libgdx + 机器人)

    我的 iOS 应用程序因同一原因被拒绝提交两次 启动时崩溃 鉴于日志 我猜它来自我的配置文件和签名身份 我正在将 Libgdx 1 5 x 与 RoboVM beta 4 和 Eclipse 一起使用 当我构建没有配置文件的应用程序时 它可
  • 从函数和方法返回受约束的泛型

    我想创建一个返回符合协议的对象的函数 但该协议使用typealias 给出以下玩具示例 protocol HasAwesomeness typealias ReturnType func hasAwesomeness gt ReturnTy
  • iOS 检测 UIView 的点击和触摸

    我遇到了确定如何检测 UIView 被按下和 UIView 被点击的问题 当它被触碰时 我希望 UIView 改变它的背景颜色 当它被触摸时 我希望 UIView 执行某些任务 我想知道如何解决这个问题 void viewDidLoad U
  • 斯威夫特 NSNotificationCenter?

    我正在尝试让 UITextViewTextDidChangeNotification 正常工作 我是 NSNotificationCenter 的新手 所以我很难理解到底发生了什么 我在故事板中有一个 UITextView 我在 ViewC
  • Swift - 将 HTML 文本转换为属性字符串

    在我的一个模块中 我想使用 UILabel 将多语言 HTML 文本 英语和泰米尔语 显示为 NSAttributedString 如果文本是纯英文 我可以按照我的愿望显示它 但我的内容同时包含英语和泰米尔语字符 我该如何处理这种情况 如果
  • Swift 2,带有 Objective-C 选择器“setOn:”的方法“setOn”与具有相同 Objective-C 选择器的“on”的 setter 冲突

    Swift 2 我有一个类继承自 objc 的 UIView 它有 on 变量 以及相关方法 setOn animated 和 setOn 如下所示 public class AView UIView var on Bool false p
  • UItableViewCells 中的单选按钮逻辑

    嘿 我正在一个屏幕上工作 用户有选项组 例如 饮料 这是我的 tableView 中的部分标题 他们的选择是 7up 可乐 等 它们是我表格的单元格 现在 每个选项组选项 按顺序排列的每个单元格 都有一个单选按钮 我想实现这个 如果用户选择
  • 如何在 xcode 6 中查看汇编代码

    如何在 xcode 6 中使用 iOS 设备运行应用程序时查看编译器生成的汇编代码 我应该在 xcode 中启用哪些设置才能查看汇编代码 在 Xcode 选项中 选择选项 调试 gt 调试工作流程 gt 始终显示反汇编 在要查看汇编代码的代
  • 如何本地化推送通知权限对话框警报?

    我在过去 3 小时内一直在尝试 但找不到任何方法来对其进行本地化 我使用的是 iOS 10 0 意思是 UNUserNotificationCenter 我想将其本地化为西班牙语 墨西哥 es MX 语言 当您在模拟器中运行应用程序时 您不

随机推荐

  • 在动画期间更改 jQuery 的动画持续时间

    是否可以更改duration当前正在运行的两个不同值之间的 jQuery 动画 我尝试过改变duration通过直接赋值 但没有成功 var timing duration 4000 document click function e ti
  • 我们应该如何编写 get 方法,以便私有字段不会逃脱其预期范围? [复制]

    这个问题在这里已经有答案了 来自 Java 并发实践 发布一个对象可能会间接发布其他对象 如果您添加一个 已发布的knownSecrets 集的秘密 您还发布了 秘密 因为任何代码都可以迭代 Set 并获取对的引用 新的秘密 类似地 从非私
  • 文档片段如何工作?

    谁能简要解释一下 documentFragment 的实际用途吗 我一直在寻找明确的解释 但直到现在我还没有得到任何解释 我读到的是 documentFragment 是类似于 DOM 的结构 我们可以在其中添加修改 DOM 元素 而不会中
  • Mongoose:如何在不填充第一层字段的情况下填充 2 层深层人口?在 mongodb 中

    这是我的猫鼬架构 var SchemaA new Schema field1 String fieldB type Schema Types ObjectId ref SchemaB var SchemaB new Schema field
  • Google 地图中的 Fusion Table 将不会显示整个几何图层

    我在谷歌驱动器中创建了一个新的融合表 其中包含放置在某些城镇上的大型子集几何图形 然而 当我查看地图和相应的融合表叠加层时 只会显示与城镇相关的几何图形的某些部分 有些城镇甚至根本不会显示几何图形 当在谷歌地球中查看相同的 kml 文件时
  • AA 级辅助功能 - 使用文本阴影增强颜色对比度

    我有一个网站 正在根据 WCAG 2 0 AA 级合规性进行编码 但其中一个按钮的颜色对比度未通过 背景 D57405 前景 FFF 是否可以使用文本阴影来增强对比度 这会被视为通过吗 我可以为不支持文本阴影的浏览器提供不同的颜色 但我想尝
  • 客户端验证的 ASP.NET MVC 验证摘要

    我们的服务器端验证 通过数据注释 运行良好 并按照我们喜欢的方式在 ValidationSummary 中发布错误 客户端验证也可以工作 但是错误显示在控件的右侧 并且验证摘要从不显示 有没有一种简单的方法可以使客户端验证显示看起来像服务器
  • github权限错误(ssh密钥无法识别)

    从另一个 本地 存储库推送到 github 帐户后 我似乎失去了对它的权限 我现在收到以下错误 git push Permission denied publickey fatal The remote end hung up unexpe
  • 将搜索放大镜更改为 UIActivityIndi​​catorView

    我有一个应用程序可以在 13 000 个单元格中搜索文本 我知道这是很多细胞 在较旧的 iPhone 上 搜索需要花费几秒钟的时间 因此我想提供一个指示器视图 向用户显示该应用程序仍在运行 我想出了将 UISearchBar 放大镜更改为
  • 如何将 iBATIS 查询与 select 子句中的参数化列映射?

    我想要一种方法 可以从数据库中特定表的列中查找特定值 其中列的名称作为参数传入 因此 Java 方法将具有以下签名 public Integer getFoo String column throws DataAccessException
  • Bloomberg API 请求超时

    设置 ReferenceDataRequest 后 我 将其发送到 EventQueue Service refdata session GetService blp refdata Request request refdata Crea
  • 如何从表格格式的发票中提取数据

    I m trying to extract data from pdf image invoices using computer vision For that i used ocr based pytesseract this is s
  • 取消引用空指针

    即使在强制转换 void 指针之后 我在取消引用它时也会遇到编译错误 谁能告诉我这是什么原因 int lVNum 2 void lVptr lVptr int lVNum printf nlVptr 60 is d n lVptr 1 取消
  • Rails 4 嵌套形式 - 没有将 Symbol 隐式转换为 Integer

    在我的 Rails 4 应用程序中 我有一个三重嵌套路线 devise for users do resources foo do resources marflar end end 我有一个用于创建带有嵌入的 Marflar 对象的新 F
  • 使用 string.endswith() 的匹配大小写来处理不同可能的字符串结尾

    我想迭代一个目录并根据扩展名将文件排序到单独的列表中 我想使用匹配大小写来执行此操作 而不是使用许多单独的 else if 大致如下 for file in os listdir dirpath filename os fsdecode f
  • 如何使用不同的fxml文件创建多个javafx控制器?

    我一直在查看一些博客和其他 stackoverflow 问题 但没有看到我的问题的直接答案 我正在创建一个 javafx gui 客户端 我希望我的菜单栏成为一个 fxml 中的一个控制器 然后我希望内容区域成为附加的 fxml 文件 登录
  • 随机化大数据集

    我正在尝试找到一种从大型数据集中进行随机选择的方法 我们预计该集合将增长到大约 500K 条记录 因此找到一种在集合增长时保持良好性能的方法非常重要 我尝试了一种技术 http forums mysql com read php 24 16
  • 与 NULL 合并

    我在视图中发现了这段 SQL 片段 我对它的用途感到相当困惑 为简洁起见 实际的 SQL 被缩短了 SELECT COALESCE b Foo NULL AS Foo FROM a LEFT JOIN b ON b aId a Id 我想不
  • php artisan 迁移除少数表之外的所有表

    是否可以执行php artisan migrate以一种迁移所有表但只保留少数迁移文件的方式database migrations 场景是 我们的业务需求需要2个DB 因此 很少有迁移文件明确提及第二个数据库 当我为 PHPUnit 创建另
  • 无法在 Alamofire 4.0 中使用类型为“(String, withName: String)”的参数列表调用“append”

    我正在使用 Alamofire 4 0 在通过设备 相机选择或录制视频后将视频上传到服务器 但是当我尝试使用append调用上传函数时 在所有append语句中都出现了这个错误 我的代码有什么问题 第二个问题是我是否想在上传过程中显示进度以