Tag: 运行时调整

如何调配私人课程的方法

我有一个私有类(在.m中声明和定义)作为一个不同类的实现的补充,恰好在内部使用这个私有类。 我想调整这个私人课程的方法之一。 我定义了一个类别,做了平常的事情: +(void)load { Method original, swizzled; original = class_getInstanceMethod(objc_getClass("SomePrivateClass"), @selector(somePrivateMethod:)); swizzled = class_getInstanceMethod(self, @selector(swizzled_somePrivateMethod:)); method_exchangeImplementations(original, swizzled); } 问题是,我的实现显然不知道这个私人类什么,自我指的是我将类添加到类,无论哪个类可能是。 所以我没有办法调用原来的实现,并且一般和私有类一起工作。 什么是正确的方法来解决这个问题?