Swift中的协议扩展凡对象是一个类,并符合协议
问题描述:
我有两个协议(Archivable
和Serializable
)和一个类(Model
)多次子类化。许多子类实现了Archivable
或Serializable
(或两者)。我想为Model
的所有子项定义一个函数,它们实现Archivable
和Serializable
。这两项工作:Swift中的协议扩展凡对象是一个类,并符合协议
extension Serializable where Self: Model {
func fetch() { ... }
}
或
extension Serializable where Self: Archivable {
func fetch() { ... }
}
但我无法弄清楚如何扩展在既要求协议。除了创建符合前两个协议的第三个协议之外,还有其他选择吗?
答
我认为这应该工作:
extension Archivable where Self: Model, Self: Serializable {
func fetch() { ... }
}
...或周围的其他方法:
extension Serializable where Self: Model, Self: Archivable {
func fetch() { ... }
}
谢谢你 - 这正是我需要的。一旦系统允许我将标记为答案。 –
这是一个很棒的提示! – Fattie