super performSelector: 解决调用父类私有方法的问题
程序员文章站
2022-12-22 12:30:26
super performSelector: 解决调用父类私有方法的问题 ......
super performselector: 解决objc调用父类私有方法的问题
objc中[super performselector: ...]并不会像其他语言一样能良好的工作。super只是编译器符号。
想要安全和快速的调用父类的方法是直接调用父类方法的函数地址:
method md = class_getinstancemethod(class_getsuperclass(self.class), @selector(xxxxx:)); imp imp = method_getimplementation(md); void(*super_imp)(id,sel,id) = (void*)imp; super_imp(self, @selector(xxxxx:), 参数1, 参数2, 参数3,... ...);
推荐阅读
-
super performSelector: 解决调用父类私有方法的问题
-
java基础-super(实参)的用法-子类调用父类的构造方法
-
SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法
-
Spring实现类私有方法的几个问题(亲测通用解决方案)
-
super performSelector: 解决调用父类私有方法的问题
-
子类继承父类时,创建对象,构造方法的调用问题
-
使用super多继承及MRO顺序,解决菱形继承的父类二义性问题之进阶 参数问题
-
SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法
-
java基础-super(实参)的用法-子类调用父类的构造方法
-
Spring实现类私有方法的几个问题(亲测通用解决方案)