我想检索给定通知名称的观察者(对象和选择器)列表。我知道这方面没有官方的API。我也知道我可以通过subclass NSNotificationCenter来实现这一点。然而,有时这并不是一个可行的选择,因为NSNotificationCenter的使用遍及整个代码,甚至是二进制框架。
因此,我正在寻找一种非官方/私人的方式来做到这一点。(因为它只与调试有关,所以这没问题。)
发布于 2012-11-07 22:16:00
如果你不想继承NSNotificationCenter
的子类,你可以重命名原始的addObserver:selector:name:object
方法,并用这样的名字创建你自己的方法,并在其中添加观察者到一些数组中,然后调用原始的重命名方法。
看看下面的方法:class_addMethod
,class_replaceMethod
,class_getMethodImplementation
。
还可以看看这个问题:Method Swizzling
我不知道你为什么想要观察者,但你可能会发现这个类很有用,它会自动为你移除观察者,我想这可能就是你想要的。SFObservers
https://stackoverflow.com/questions/13271388
复制相似问题