2016-03-03 63 views
3

我试图用Alamofire发布多个对象,像这样的数组:POST阵列 - 斯威夫特/ IOS

class Person { 

dynamic var firstName: String? 
dynamic var lastName: String? 
dynamic var email: String? 
dynamic var state: String? 

init(){} 
init(firstName:String, lastName:String, email:String){ 
    self.firstName = firstName 
    self.lastName = lastName 
    self.email = email 
} } 

我已经创建者的数组,它添加到字典是这样的:

let zipCode = “20876” 
    let city = “Rockville” 
    let persons = [Person]() 
    let state = “MD” 

    let params: [String:AnyObject] = [ 
     “zipCode” : zipCode!, 
     “city” : city!, 
     “persons”: NSArray(array: persons), 
     “state” : state! 

    ] 

,然后试图将其发送到Web服务,我得到一个错误消息说:终止应用程序由于未捕获的异常“NSInvalidArgumentException”,理由是:“在无效类型JSON写'

Alamofire.request(.POST, url, parameters: params, encoding: .JSON) 
     .responseJSON {(req, res, json, error) in } 

有没有人尝试发布一个数组,是alamofire能够做到这一点? 我希望我明确提出问题。对不起,如果这个问题太简单了,我就花了整整一天的时间来解决这个问题,但没有成功。 谢谢

回答

0

你必须创建从一个人的类对象,对象字典不是serilizable

class Person { 

    dynamic var firstName: String? 
    dynamic var lastName: String? 
    dynamic var email: String? 
    dynamic var state: String? 

    init(){} 
    init(firstName:String, lastName:String, email:String){ 
     self.firstName = firstName 
     self.lastName = lastName 
     self.email = email 
    } 
    func getDictFormat() -> [String: String]{ 

     return ["firstName" : firstName!, "lastName" : lastName!, "email" : email!, "state" : state!] 
    } 
} 
+0

而这将是下一个步骤?谢谢 –

+0

好的,我明白了。我创建了一个新的字典词典,并使用该函数将每个Persons字典追加到for循环中。再次感谢你。 –

+0

任何时候请upvote它也是 – techloverr