我有一个协议:
protocol ProfileManagerDelegete {
func dataHaveUpdated(type: ReturnType)
}
并创建协议数组,并添加/删除侦听器:
var listeners: [ProfileManagerDelegete] = []
func addListener(listener: ProfileManagerDelegete) {
listeners.append(listener)
}
func removeLister(listener: ProfileManagerDelegete) {
for lis in listeners {
if lis == listener { // this line error
//remove listener
}
}
}
任何人都可以提供帮助吗?
答案 0 :(得分:2)
因为你还没有告诉Swift如何比较ProfileManagerDelegete
类型的2个对象。定义一个函数:
protocol ProfileManagerDelegete {
func dataHaveUpdated(type: ReturnType)
}
func == (lhs: ProfileManagerDelegete, rhs: ProfileManagerDelegete) -> Bool {
// decide if they are equal
}
答案 1 :(得分:1)
在这种情况下,您想要使用' ==='运营商。只需使ProfileManagerDelegete符合AnyObject。