我有一个协议,以及一些符合该协议的结构,基本上采用以下格式。我面临一个问题,如果我将不同的结构附加到类型[Protocol]
的数组中,则结构的值将以一种奇怪的方式变化。但是,如果我将数组的类型更改为[Struct1]
或[Struct2]
,并且仅追加适当的类型,就没有问题。
protocol Protocol {
var id: String { get set }
var name: String { get set }
}
struct Struct1: Protocol {
var id: String = "1"
var name: String = "Struct1"
var uniqueProperty1: String = "uniqueProperty1"
}
struct Struct2: Protocol {
var id: String = "2"
var name: String = "Struct2"
var uniqueProperty2: String = "uniqueProperty2"
}
var structs: [Protocol] = []
let struct1 = Struct1()
let struct2 = Struct2()
structs.append(struct1)
structs.append(struct2)
我应该添加,上面的代码按预期工作。这是我的项目,它具有一个协议和一些结构,但是表现却很奇怪。是什么原因导致此问题?