我正在使用ObjectMapper。而且我知道我们可以像map [" name.label"]那样指定关键路径,但我现在不想使用keyPath。检查以下代码。我可以访问Author.name?.label
等名称。
class Author: Mappable {
var name: LabelDict?
required init?(map: Map) {
}
func mapping(map: Map) {
name <- map["name"]
}
}
class LabelDict: Mappable {
var label: String?
required init?(map: Map) {
}
func mapping(map: Map) {
label <- map["label"]
}
}
如何设置Author类的name属性的getter和setter方法,将值设置为LabelDict
类标签,当我得到值时,我直接将String
作为{{1} }}。我可以通过使用一个不同的变量来实现它,但可以使用相同的吗?
答案 0 :(得分:1)
您可以LabelDict
采用CustomStringConvertible
协议。
class LabelDict: Mappable, CustomStringConvertible {
var label: String?
var description: String {
get {
return self.label ?? ""
}
}
required init?(map: Map) {
}
func mapping(map: Map) {
label <- map["label"]
}
}
然后你会像String(describing: myLabelDictInstance)
一样使用它。
- 澄清
要简单地将label
打印到控制台,您现在可以使用print(Author?.name)
。例如,如果要将其分配给标签,可以使用someLabel.text = String(describing: Author?.name)