Поскольку это тип, вы можете использовать протокол во многих местах, где разрешены другие типы, в том числе:
- Как тип параметра или тип возвращаемого значения в функции, методе или инициализаторе
- Как тип константа, переменная или свойство
- Как тип элементов в массиве, словаре или другом контейнере
Протокол SomeProtocol можно использовать только как общее ограничение, поскольку он имеет Self или связанные с ними требования к типу
Как вы собираетесь это решить:
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/248 ... s-in-swift