【问题标题】:Alamofire parameter only accepts [String : Anyobject]?Alamofire 参数只接受 [String : Anyobject]?
【发布时间】:2015-07-30 20:41:12
【问题描述】:

我正在使用 Alamofire,它是 Swift 中的一个 HTTP 网络库,我正在尝试使用下面的 json 作为请求中的参数来发出 PUT 请求,但它似乎不喜欢版本字段,因为它有里面的另一本字典。有没有办法解决这个问题?

var reqJson = [
        "asdf": "sdfs",
        "lsd": "asdf",
        "asdf" : "coc",
        "qwer": "sdf",
        "cvc": "kljb",
        "xcv": "qwe",
        "versions": [
            [
                "version": "\(version)",
                "component": "\(compName)"
            ]
        ]
    ]

    Alamofire.request(.PUT, baseURL + "/cli/applicationProcessRequest/request", parameters: reqJson, encoding: .JSON).authenticate(user: _user, password: _passwd).responseJSON{
        (_,_,data,error) in

        completionHandler(error)
    }

似乎是这种情况,因为参数应该是 [String : Anyobject] 但另一个字典不是 Anyobject 吗?

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

    您的请求中没有足够的信息让编译器推断出正确的类型(它推断的是 NSDictionary,可能是因为嵌套字典)。只需修改您的声明即可帮助解决问题。

    let reqJson: Dictionary<String, AnyObject> = [
        "asdf": "sdfs",
        "lsd": "asdf",
        "asdf" : "coc",
        "qwer": "sdf",
        "cvc": "kljb",
        "xcv": "qwe",
        "versions": [
            [
                "version": "abc",
                "component": "xyz"
            ]
        ]
    ]
    

    【讨论】:

      猜你喜欢
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多