我正在使用方法调配将所有方法调用包装在一个具有一些额外功能的类中。具体来说我是:
对于每种方法,我都会重新路由到一个建议的方法。并使用+(BOOL)resolveInstanceMethod:(SEL)sel和IMP_implementationWithBlock实现新方法。
它工作正常,但代码没有很好地阅读。似乎NSProxy将提供一种更简洁的方式来实现此功能。
但还有另一种选择,就是简单地在我的目标对象的方法周围使用NSObject子类替换和拦截方法调用。通过重写forwardInvocation和methodSignatureForSelector,我可以获得所需的结果。
那么NSProxy给了我什么?我为什么要用这个呢?
答案 0 :(得分:14)
NSProxy
的要点是它没有实现大多数方法。这是必要的,以确保开始调用Objective-C转发机制。如果你从NSObject
开始,有很多方法可以直接发送,而你没有机会转发它们。