【问题标题】:Cannot call value of non-function type '((UInt) -> Data?)!' with Alamofire 4无法调用非函数类型“((UInt)->数据?)!”的值与 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]类型

标签: swift alamofire alamofireimage


【解决方案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 书来复习你的基础知识。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 2016-01-01
  • 2017-08-16
  • 2020-02-01
  • 2021-01-15
  • 2021-03-30
相关资源
最近更新 更多