I'm trying to build a simple observer mixin with Swift 2. Here comes just the relevant part.
protocol Observable{
typealias T
var observers:[T] { get set }
mutating func removeObserver(observer:T)
}
To create the mixin I use an extension:
extension Observable{
mutating func removeObserver(observer:T){
let index = self.observers.indexOf{ $0 === observer }
if let _ = index{
self.observers.removeAtIndex(index)
}
}
}
This creates the compiler error: Binary operator '===' cannot be applied to operands of type '_' and 'Self.T'
Can you explain to me why this error is occurring?