Alamofire POST 方法中的 POST 对象数组 - Swift/IOS

Posted

技术标签:

【中文标题】Alamofire POST 方法中的 POST 对象数组 - Swift/IOS【英文标题】:POST array of objects in Alamofire POST method - Swift/IOS 【发布时间】:2016-03-03 13:58:56 【问题描述】:

我正在尝试使用 Alamofire 发布多个对象的数组,如下所示:

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
 

我创建了一个 Persons 数组并将其添加到字典中,如下所示:

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 有能力这样做吗? 我希望我把问题说清楚了。抱歉,如果这个问题太简单而无法回答,我花了一整天的时间来解决这个问题,但没有解决。 谢谢

【问题讨论】:

【参考方案1】:

您必须从该对象不可序列化的人员类对象创建字典

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!]
    

【讨论】:

下一步是什么?谢谢 好的,我想通了。我创建了一个新的字典字典,并使用该函数将每个 Persons 字典附加到 for 循环中。再次感谢您。【参考方案2】:

Ray Wenderlich 最近有关于 Alamofire 的教程。

请参考链接:

http://www.raywenderlich.com/85080/beginning-alamofire-tutorial (请参阅创建请求路由器) http://www.raywenderlich.com/87595/intermediate-alamofire-tutorial

【讨论】:

以上是关于Alamofire POST 方法中的 POST 对象数组 - Swift/IOS的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 从 POST 获得响应

Swift 中的 Alamofire .post。 “调用结果未使用,但产生‘DataRequest’

使用 alamofire 的 post 方法没有得到正确的响应,结果是失败 [关闭]

Alamofire4在使用方法时抛出“额外参数方法”:.post

使用 Alamofire 请求方法在 POST 的请求正文中发送 JSON 对象数组

Alamofire POST 方法不会将值传递给 url