Tag: method swizzling

有什么办法可以在iOS应用程序中列出所有的方法吗?

我基本上正在寻找一种方法来检测何时/什么第三方库swizzle。 我最近遇到了一个广告库使用了AFNetworking的古怪分支的情况。 AFNetworking调整NSURLSessionTask,并且在某些情况下两个swizzles不能很好地播放。 我真的希望能够检测和理智检查这种事情,理想情况下,甚至保持在应用程序中的每个debugging方法的版本化的转储,所以我们有一些可见的谁是猴子修补什么和风险是什么。 谷歌和堆栈溢出search已经没有什么了,但只有一堆教程如何swizzle。 有人遇到这个问题或有解决办法? 它看起来像我可以使用objc / runtime.h编码的东西,但我无法想象我是第一个需要这个人。

如何在覆盖某个类别的方法时调用原始实现?

我试图弄清楚事情是如何工作的。 所以我想,当我将覆盖某些方法使用类别,我会得到有趣的NSLogs。 @implementation UIView(Learning) – (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { NSLog(@"-hitTest:withEvent: event=%@", event); return [self hitTest:point withEvent:event]; } @end 超级和自我不在这里工作。 有没有办法调用-hitTest:withEvent的原始实现:? 我想要的是NSLog每次-hitTest:withEvent:在UIView上调用。 这只是个人学习的目的。 我希望看到事件的实施。