如何使用 ObjectMapper 映射子 class

how to map a sub-class with ObjectMapper

如何使用 ObjectMapper 映射子class? 我正在使用 swift 2.2 和 Hyphe,以此为例,但它不使用 subclasses https://bitbucket.org/hyphe/blog-examples/src/59f61b2d8e68c7d3630b40964c4fe3c191d60de6/fetchData/iOS-TechPost1/?at=master 例如,我的 API 正在拉 classes 'title' 和海报',但是对于 'poster' 我需要它来找到子 class 的 src.

我的 class 'poster' 是我数组 "images" 中的子 class。例如,我要拉入的 Json 是:

 "title" : "Election",
 "poster" : {
  "src" : "https://example.site/image"
  "alt" : ""

}

我的 swift 文件 class 是:

import Foundation
import RealmSwift
import ObjectMapper
import Foundation
import RealmSwift
import ObjectMapper

protocol Meta {
static func url() -> String
}

class Specimen: Object, Mappable, Meta {
dynamic var title = ""
dynamic var poster = ""

}

//Impl. of Mappable protocol
required convenience init?(_ map: Map) {
    self.init()
}

func mapping(map: Map) {

    title    <- map["title"]
    poster <- map["poster"]
}

//Impl. of Meta protocol
static func url() -> String {
    return "https://example.site/data"
}
}

我已经尝试了以下选项,但它们不起作用: 海报<-地图["poster{src}"] 海报 <- 地图["poster"["src"]]

感谢您的帮助!有任何想法吗?

据我了解,您正在尝试使用 ObjectMapper 将嵌套的 json 对象映射到 Swift 对象的 属性。 ObjectMapper 为此支持点符号。请查看文档 here.

在这种情况下,正确的语法是:poster <- map["poster.src"].