关于错误消息:
无法调用 '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
从头开始。