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 的值的主要内容,如果未能解决你的问题,请参考以下文章