Это отличный вариант использования enum со связанными значениями:
enum Filling {
case pureColor(UIColor)
case gradient(CAGradientLayer)
}
Вы можете использовать Filling
как тип filling
:
var filling: Filling
// ...
let bObj1 = B(arrayOfA: [A(filling: .pureColor(.white), width: 5),
A(filling: .gradient(CAGradientLayer()), width: 10)]
Чтобы проверить тип заполнения, используйте оператор switch:
switch filling {
case .pureColor(let color):
...
case .gradient(let layer):
...
}