Alamofire 上下文类型 anyobject 不能与字典文字一起使用

Posted

技术标签:

【中文标题】Alamofire 上下文类型 anyobject 不能与字典文字一起使用【英文标题】:Alamofire Contextual type anyobject cannot be used with dictionary literal 【发布时间】:2016-08-14 21:51:41 【问题描述】:

我正在调用一个 POST 请求,在该请求中我从另一个方法提供参数、url 并得到错误:

Contextual type anyobject cannot be used with dictionary literal

这就是我在这里调用并得到错误的方式:

API.sharedInstance.post(NSURL(string: baseURL)!, params: ["name":  val, "owner": "John"])

这是我的Alamofire 代码:

func post(url: NSURL, params: AnyObject) 

    Alamofire.request(.POST, baseURL, parameters: params as! [String : AnyObject])
        .validate()
        .responseJSON  response in
            switch response.result 
            case .Success:
                print("Validation Successful")
                print("response = \(response)")
            case .Failure(let error):
                print(error)
            
    


【问题讨论】:

【参考方案1】:

尝试替换

func post(url: NSURL, params: AnyObject)     
    Alamofire.request(.POST, baseURL, parameters: params as! [String : AnyObject])

func post(url: NSURL, params: [String : AnyObject])     
    Alamofire.request(.POST, baseURL, parameters: params)

【讨论】:

那是我之前的,但 XCode 推荐了我 [String: AnyObject] 并且没有用

以上是关于Alamofire 上下文类型 anyobject 不能与字典文字一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3/Alamofire 4 迁移,必须为 [String: AnyObject] 使所有元素“作为 AnyObject”

Alamofire 参数只接受 [String : Anyobject]?

在 Swift 中使用 JSON 的 Alamofire 请求后,如何在 AnyObject 中转换 <AnyObject> 响应?

从 NSMutableDictionary 到字符串数组的 Alamofire 结果:Anyobject

上下文类型“AnyObject”不能与字典文字一起使用?

更新到 Swift 3.0:上下文类型“AnyObject”不能与字典文字一起使用