1. 程式人生 > >oc 子類呼叫父類的私有方法

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);
假設父類有名為<span style="font-family: Arial, Helvetica, sans-serif;">somePrivateMethod的私有方法。在子類中通過runtime就可以呼叫父類的該方法。但需要注意的是</span><span style="font-family: Arial, Helvetica, sans-serif;">method_invoke方法在ARC環境下會導致迴圈引用,因此需要宣告成靜態方法</span>