У меня есть 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)
.Я передаю экземпляр этих трех структур и настраиваю ячейку.
Я сделал что-то вроде
fun 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
}
}
Но я не удовлетворен этим подходом, поскольку он ведет к избыточному коду.Можете ли вы предложить мне подход, который удалит этот избыточный код.