使用 ObjectMapper 和 Alamofire 时对象始终为零
Posted
技术标签:
【中文标题】使用 ObjectMapper 和 Alamofire 时对象始终为零【英文标题】:Object always nil while using ObjectMapper and Alamofire 【发布时间】:2015-07-20 20:36:12 【问题描述】:似乎无论我做什么,我在 Swift 中转换的 JSON 变量总是为零。我正在关注AlamofireObjectMapper 的文档,但似乎没有任何效果。
func loginAF(username: String, password: String, url: String)
Alamofire.request(.GET, url, parameters: ["username": username, "passoword": password]).responseObject (response: Resultset?, error: NSError?) in
println(response!)
println(response?.account?.mongoId)
最后的打印语句是nil
这是Resultset
结构,它应该从中提取:
struct Resultset: Mappable
var account: Account?
init()
init?(_ map: Map)
mapping(map)
mutating func mapping(map: Map)
account <- map["account"]
struct Account: Mappable
var mongoId: Int?
init()
init?(_ map: Map)
mapping(map)
mutating func mapping(map: Map)
mongoId <- map["mongoId"]
我确定我得到了有效数据,以下是它的样子:
"errors":[],"resultset":"account":"mongoId":"55a7961fdf5d3ca421ff4cb9","locations":["......
如果有人知道任何其他轻松将 JSON 转换为对象的方法,请告诉我。谢谢!
【问题讨论】:
您是否尝试过 resultset.account 而不是 account 中的 account account 【参考方案1】:您在请求中的一个参数称为密码,其次我认为解决方案是您不能使用结构。
这是因为 Serializer 期望返回 AnyObject 作为其结果,而结构不是 AnyObject,这是一种耻辱,因为结构是完美的值类型。
我从这里得到这个http://kaandedeoglu.com/2015/02/20/From%20JSON%20to%20Type-safe%20objects%20in%20Swift/
另外在文档中我刚刚看到了类。 希望对你有帮助
【讨论】:
将我的结构更改为一个类对我有用。嵌套对象时似乎只是一个问题。以上是关于使用 ObjectMapper 和 Alamofire 时对象始终为零的主要内容,如果未能解决你的问题,请参考以下文章