```
@objc protocol MD_DispatcherCenterDelegate: NSObjectProtocol {
funcactionTestDispatch(test1:Int, test2:Int)
}
```
```
class MD_DispatcherCenter: NSObject {
/// 保证sharedInstance是一个常量,在创建之后不会被更改 (单例 支持懒加载, 线程安全)
static let shared = MD_DispatcherCenter()
/// 存放observer的集合
let observerTargets:NSHashTable = NSHashTable<AnyObject>.weakObjects()
/// 保证init方法在外部不会被调用
private override init() {}
/// 增加Observer
/// - Parameter oberver: AnyObject
func addObserver(oberver:AnyObject) {
if !observerTargets.contains(oberver) {
observerTargets.add(oberver)
}
}
/// 移除Observer
/// - Parameter oberver: AnyObject
func removerObserver(oberver:AnyObject) {
if observerTargets.contains(oberver) {
observerTargets.remove(oberver)
}
}
/// 判断是否是自己的observer
/// - Parameter oberver: AnyObject
/// - Returns: Bool
func isObserver(oberver:AnyObject) ->Bool{
if observerTargets.contains(oberver) {
return true
}
return false
}
func testDispatch(){
for object in observerTargets.allObjects{
if let delegate = object as? MD_DispatcherCenterDelegate{
delegate.actionTestDispatch(test1:0, test2:1)
}
}
}
}
```
网友评论