2015-11-03 12 views
5

Ham json dize Alamofire ile put veya post yönteminden nasıl gönderebilirim?Alamofire raw json dize göndermek veya koymak

Bunun için herhangi bir örnek bulamıyorum.

let params = Mapper().toJSONString(results) // json string with array of objects 

Alamofire.request(.PUT, Config().apiGroup, parameters: params) 

alma hatası: Hata söyledi ve koduna göre bir dizi geçiş yapmaya çalışan olarak

Cannot convert value of type 'String?' to expected argument type '[String : AnyObject]?' 

cevap

4

Alamofire [String: AnyObject]? bir sözlüğü bekliyoruz, bunun yerine bir sözlüğe dönüştürmek gerekir. Alamofire işlevin request imzasını kontrol edin:

func request(method: Method, _ URLString: URLStringConvertible, 
      parameters: [String : AnyObject]? = default, 
      encoding: ParameterEncoding = default, 
       headers: [String : String]? = default) -> Request 

Alamofire doc bu örneğe bakın: Ben bu yardımı umut

let params = Mapper().toJSONString(results) // json string with array of objects 

Alamofire.request(.PUT, "http://httpbin.org/get", parameters: ["params": params]) 
    .response { request, response, data, error in 
     print(request) 
     print(response) 
     print(data) 
     print(error) 
     } 

.

+0

Ancak bu bir dizi nesnedir, bu yüzden onu [[String: AnyObject] 'olarak değiştiremiyorum. :/ –

+0

Evet ama yukarıda söylediğim gibi, Alamofire bir Sözlük dizisini beklemiyor, güncellenmiş bir cevabı görebilmeniz için bir örnek görebilirsiniz –

+0

Ama ben ''POST' veya' .PUT' deniyorum. Bu örnek veya veri dizisidir: '[[" id ": 10," sipariş ": 0," isim ": Test], [" id ": 12," sipariş ": 9," name ": Test2]]' Ben bunu '[String: AnyObject]' e çeviremiyorum ' –