Swift 3 [String: AnyObject]() 给出了不能调用非函数类型 UInt -> Data 的值

Posted

技术标签:

【中文标题】Swift 3 [String: AnyObject]() 给出了不能调用非函数类型 UInt -> Data 的值【英文标题】:Swift 3 [String: AnyObject]() gives Cannot call value of non-function type UInt -> Data 【发布时间】:2016-10-05 18:40:34 【问题描述】:

我正在尝试将一些参数附加到我的 Alamofire 请求中。

var parameters = [String: AnyObject]()

parameters["firstimg"] = fetchedImagesArray[0] as AnyObject?

parameters["secondimg"] = fetchedImagesArray[1] as AnyObject?

然后:

    for (key, value) in parameters 
        multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)

但是当我尝试附加参数时,我得到了错误: 不能调用非函数类型UInt的值->数据

【问题讨论】:

仅供参考 Alamofire 参数默认为 [String: Any] 而不是 [String: AnyObject] @Aaron 我应该如何声明 var parameters = [String: AnyObject]() 那么? var parameters: [String: Any]? fetchedImagesArray 中有什么内容?字符串? @Sam_M 是的,它们是字符串 【参考方案1】:

您需要将value 转换为String 才能对其使用data(using: .utf8) 方法:

if let stringValue = value as? String 
    multipartFormData.append(stringValue.data(using: String.Encoding.utf8)!)

【讨论】:

以上是关于Swift 3 [String: AnyObject]() 给出了不能调用非函数类型 UInt -> Data 的值的主要内容,如果未能解决你的问题,请参考以下文章

无法在 swift iOS 中处理 http 代码?

从 Parse 在 Swift 中加载图像

如何使用 Swift 处理空对象?

无法使用 swift 在 iPhone 6 中注册远程通知

无法使用 swift 访问 tabBar 项的索引

“无法转换类型的值” - Firebase Swift 中的错误