swift 带有哈希表的多播代理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 带有哈希表的多播代理相关的知识,希望对你有一定的参考价值。
class MulticastDelegate <T> {
private let delegates: NSHashTable<AnyObject> = NSHashTable.weakObjects()
func add(delegate: T) {
delegates.add(delegate as AnyObject)
}
func remove(delegate: T) {
for oneDelegate in delegates.allObjects.reversed() {
if oneDelegate === delegate as AnyObject {
delegates.remove(oneDelegate)
}
}
}
func invoke(invocation: (T) -> ()) {
for delegate in delegates.allObjects.reversed() {
invocation(delegate as! T)
}
}
}
func += <T: AnyObject> (left: MulticastDelegate<T>, right: T) {
left.add(delegate: right)
}
func -= <T: AnyObject> (left: MulticastDelegate<T>, right: T) {
left.remove(delegate: right)
}
以上是关于swift 带有哈希表的多播代理的主要内容,如果未能解决你的问题,请参考以下文章
markdown vLans的多播代理
如何在swift中实现多播套接字?
Swift:带有完成处理程序的多线程
如何进行推送通知的多播?
iOS 14 上的多播网络授权
Aeron - 跨交换机的多播问题