在 Swift 中获取和设置不同的数据类型
Get and Set different data types in Swift
我正在使用 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"]
}
}
如何设置作者 class 的名字 属性 的 getter 和 setter 方法将值设置为 LabelDict
class 标签,当我得到值时,我直接得到 String
作为 Author.name
。我可以通过使用一个不同的变量来做到这一点,但是否可以使用相同的变量来做到这一点?
您可以让您的 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)
我正在使用 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"]
}
}
如何设置作者 class 的名字 属性 的 getter 和 setter 方法将值设置为 LabelDict
class 标签,当我得到值时,我直接得到 String
作为 Author.name
。我可以通过使用一个不同的变量来做到这一点,但是否可以使用相同的变量来做到这一点?
您可以让您的 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)