我有一个协议(protocol):
protocol ProfileManagerDelegete {
func dataHaveUpdated(type: ReturnType)
并创建一个协议(protocol)数组,并添加/删除监听器:
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
}
}
}
有人可以帮忙吗?
最佳答案
因为你还没有告诉 Swift 如何比较 2 个 ProfileManagerDelegete
类型的对象。定义一个函数:
protocol ProfileManagerDelegete {
func dataHaveUpdated(type: ReturnType)
}
func == (lhs: ProfileManagerDelegete, rhs: ProfileManagerDelegete) -> Bool {
// decide if they are equal
}
关于Swift:二元运算符 '==' 不能应用于 "protocol"类型的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325725/