2015-07-30 3 views
0

Я использую Alamofire, которая является сетевой библиотекой HTTP в Swift, и пытаюсь сделать запрос PUT с json ниже в качестве параметра в запросе, но, похоже, он не нравится в поле версий, потому что он имеет другой словарь внутри него. Разве это не так?Параметр Alamofire принимает только [String: Anyobject]?

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?

ответ

4

В вашем запросе для компилятора недостаточно информации о выводе правильного типа (вместо этого он выводит NSDictionary, возможно, из-за вложенного словаря). Просто измените свою декларацию, чтобы помочь вам в этом.

let reqJson: Dictionary<String, AnyObject> = [ 
    "asdf": "sdfs", 
    "lsd": "asdf", 
    "asdf" : "coc", 
    "qwer": "sdf", 
    "cvc": "kljb", 
    "xcv": "qwe", 
    "versions": [ 
     [ 
      "version": "abc", 
      "component": "xyz" 
     ] 
    ] 
] 
Смежные вопросы