我正在尝试做类似的事情,但是,Parent
不符合children
,因为Child
成员不是ChildC
而是ChildC
1}}
这很奇怪,因为Child
实现了protocol Parent: Codable {
var children: [Child] { get }
}
protocol Child: Codable {
var name: String { get }
}
struct ParentC: Parent {
var children: [ChildC]
}
struct ChildC: Child {
var name: String
}
...
这是Swift的限制吗?或者有办法做到这一点吗?
(我不要求替代解决方案,我想知道这个是否可行)
find_element_by_xpath
答案 0 :(得分:1)
您可以解决此差异"限制"通过使Parent
具有关联类型的协议:
protocol Parent: Codable {
associatedtype ChildType: Child
var children: [ChildType] { get }
}
这会影响您可以使用Parent
的地方,因为具有关联类型的协议对使用它们的位置有一些限制。