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的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中的 Alamofire .post。 “调用结果未使用,但产生‘DataRequest’
使用 alamofire 的 post 方法没有得到正确的响应,结果是失败 [关闭]
Alamofire4在使用方法时抛出“额外参数方法”:.post