如何使用ObjectMapper

时间:2016-09-30 07:50:21

标签: swift objectmapper

如何使用ObjectMapper映射子类? 我使用swift 2.2和Hyphe,以此为例,但它没有使用子类https://bitbucket.org/hyphe/blog-examples/src/59f61b2d8e68c7d3630b40964c4fe3c191d60de6/fetchData/iOS-TechPost1/?at=master 例如,我的API正在提取课程标题'和海报',但对于海报'我需要它来找到子类' src。

我的班级'海报'是我的数组中的一个子类" images"。例如我正在拉的Json是:

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

}

我班的快速文件是:

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"
}
}

我已经尝试了以下选项,但它们不起作用: 海报&lt; - 地图[&#34;海报{src}&#34;] 海报&lt; - 地图[&#34;海报&#34; [&#34; src&#34;]]

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

1 个答案:

答案 0 :(得分:2)

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

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