super performSelector: 解決objc呼叫父類私有方法的問題
Objc中[super performSelector: ...]并不會像其他語言一樣能良好的作業,super只是編譯器符號,
想要安全和快速的呼叫父類的私有方法應該是直接呼叫父類方法的函式地址:
Method md = class_getInstanceMethod(class_getSuperclass(self.class), @selector(XXXXX:)); IMP imp = method_getImplementation(md); void(*super_func)(id,SEL,Type0,Type1,Type2,...) = (void*)imp; super_func(self, @selector(XXXXX:), 引數1, 引數2, 引數3,... ...);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/15113.html
標籤:iOS
下一篇:Method Swizzling
