无法调用非函数类型“((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的主要内容,如果未能解决你的问题,请参考以下文章

无法调用非函数类型“URL”的值

无法调用非函数类型 HTTPURLResponse 的值?

Swift 3 错误“无法调用非函数类型 'UITableView!' 的值” [关闭]

错误:无法调用非函数类型的值

无法调用非函数类型“HTTPURLResponse?”的值

快速轮函数。无法调用非函数类型“Int”的值