【发布时间】:2018-12-20 15:25:38
【问题描述】:
我有 3 个结构:
struct A: Decodable {
var color: UIColor? = nil
var version: String? = nil
// and few specific to struct A
}
struct B: Decodable {
var color: UIColor? = nil
var version: String? = nil
// and few specific to struct B
}
struct C: Decodable {
var color: UIColor? = nil
var version: String? = nil
// and few specific to struct C
}
我有一个UITableViewCell 子类,其中有一个函数configure(_ object: Any)。我正在传递这三个结构的实例并配置单元格。
我做了类似的事情:
func configure(_ object: Any) {
if let aStruct = object as? A {
view.color = aStruct.color
label.text = aStruct.version
} else if let bStruct = object as? B {
view.color = aStruct.color
label.text = aStruct.version
} else if let cStruct = object as? C {
view.color = aStruct.color
label.text = aStruct.version
}
}
但我对这种方法并不满意,因为它会导致冗余代码。你能建议我一种可以删除这些冗余代码的方法吗?
【问题讨论】: