无法调用非函数类型“((UInt)->数据?)!”的值与 Alamofire 4
Posted
技术标签:
【中文标题】无法调用非函数类型“((UInt)->数据?)!”的值与 Alamofire 4【英文标题】:Cannot call value of non-function type '((UInt) -> Data?)!' with Alamofire 4 【发布时间】:2016-10-31 08:12:24 【问题描述】:我正在尝试为 Swift 3 和 Alamofire 4 转换代码,我目前正在努力解决以下错误:
Cannot call value of non-function type '((UInt) -> Data?)!'
在这一行:
multipartFormData.append(data: value!.data(using: String.Encoding.utf8.rawValue)!, name: key)
请就此案提出您的建议。我当前的代码如下。
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.rawValue)!, name: key)
,to:"uploadimgURL"
encodingCompletion: encodingResult in
switch encodingResult
case .success(let upload, _, _)
upload.responseString(completionHandler: (response) in
debugPrint(response)
)
case .failure(let encodingError):
print(encodingError)
)
【问题讨论】:
更改参数为[String:String]类型 【参考方案1】:我确实看到有问题的线路存在一个问题。尽量不要像这样使用枚举的原始值:
let stringValue = value as! String
multipartFormData.append(data: stringValue.data(using: .utf8)!, name: key)
【讨论】:
感谢您的建议!我在上面做了,收到“无法强制解开非可选类型'Any'的值”...... 这很可能来自 value 变量。尝试删除!后价值。multipartFormData.append(data: value.data(using: String.Encoding.utf8), name: key)
->“任何”类型的值没有成员“数据”
预定义 -> let imageData = UIImageJPEGRepresentation(myDrawingImageView.image!, 1) let parameters = ["lastName" : receiverLabelText.text, "userId" : randomURL + nowString ] as [String : Any]
类型参数为 [String : String]。或者强制转换值:让 stringValue = value as!细绳。另外,你还需要!数据方法之后。你应该再读一遍 Swift 书来复习你的基础知识。以上是关于无法调用非函数类型“((UInt)->数据?)!”的值与 Alamofire 4的主要内容,如果未能解决你的问题,请参考以下文章