oc 子类调用父类的私有方法

 static void (*_method_invoke_void)(id, Method, ...) = (void (*)(id, Method, ...)) method_invoke;
    
    
    Method originalMethod = class_getInstanceMethod(self.superclass, @selector(somePrivateMethod));
    

    _method_invoke_void(self, originalMethod);
假设父类有名为somePrivateMethod的私有方法。在子类中通过runtime就可以调用父类的该方法。但需要注意的是method_invoke方法在ARC环境下会导致循环引用,因此需要声明成静态方法

你可能感兴趣的:(Object-C)