我想创建一个可以存储符合特定协议的对象的类。对象应该存储在类型化数组中。根据Swift文档协议可以用作类型:
因为它是一种类型,所以您可以在许多允许其他类型的地方使用协议,包括:
但是,以下代码会生成编译器错误:
协议“”SomeProtocol“”只能用作泛型约束,因为它具有自身或关联的类型要求
你应该如何解决这个问题:
protocol SomeProtocol: Equatable {
func bla()
}
class SomeClass {
var protocols = [SomeProtocol]()
func addElement(element: SomeProtocol) {
self.protocols.append(element)
}
func removeElement(element: SomeProtocol) {
if let index = find(self.protocols, element) {
self.protocols.removeAtIndex(index)
}
}
}
https://stackoverflow.com/questions/24888560
复制相似问题