欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

super performSelector: 解决调用父类私有方法的问题

程序员文章站 2022-05-18 21:12:04
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,... ...);