美文网首页
子类中调用父类的私有方法

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

作者: ANTI_JAM | 来源:发表于2017-06-23 10:18 被阅读228次

对于在使用cocoapods中,可能三方库中的类并不能满足实际需求,因此我们要对这些类进行子类化或者category等操作。

假设我们在子类中想调用父类的方法,对于父类的.m文件内容可见的情况即已经知道具体想调用的方法名时,可以:

第一种最简单的办法:

if ([super respondsToSelector:@selector(methodName)]) {

[super performSelector:@selector(methodName)];

}

第二种可以通过runtime获取父类的该方法

Method oriM = class_getInstanceMethod([super class], @selector(methodName));

SEL selector = method_getName(oriM);

[super respondsToSelector:selector];

如会出现“undeclared selector”的warning时

1.可在当前文件文件或.pch中导入

#pragma GCC diagnostic ignored "-Wundeclared-selector"

2.如下在警告的代码前后加上

#pragmaclang diagnostic push

#pragmaclang diagnostic ignored"-Warc-performSelector-leaks"

warning code...

#pragmaclang diagnostic pop


https://stackoverflow.com/questions/8773226/performselector-warning

相关文章

  • OC 中子类如何调用父类的私有方法

    OC中能实现子类调用父类的私有方法吗? 调用父类的私有方法无非是想做两种操作:1.父类的实现完全不适用于子类(需完...

  • Objective-c 子类继承父类私有方法

    笔记: 在OC中 如果子类重写了父类的私有方法,父类不会再调用本类的实现,而是直接调用子类的实现。切记,切记。

  • 2018-07-19重写与重载

    重写 当子类继承父类后,拥有了父类成员并且可以调用父类的所有非私有方法,如果子类认为父类所提供的方法不够完美,子类...

  • iOS 小知识点总结

    子类实现父类方法时,监测子类是否调用super方法。 在父类中声明方法时: 子类中实现该父类方法: 图片压缩

  • python 面向对象: super()

    python 关于 super 的使用 子类对象调用父类方法 :super(B,b).hh() 子类中调用父类方法...

  • 从 [super performSelector:@select

    如何调用父类的私有方法 有这样一个需求: 父类:Person 子类:Son ViewController: 现在子...

  • PHP 方法重载的注意事项

    先给出个简答的例子: 注意在子类中实例中调用父类的方法,如果父类方法中包含子类重载后的方法时,会优先调用子类方法。...

  • 继承类的容易出错的基础题

    结论:子类继承父类,调用方法时先是调用子类中的方法,如果没有就调用父类中的方法,还有一点就是try{ }、catc...

  • python继承二(实例)

    父类 子类一 采用父类名.方法的方式调用父类中的初始化函数" 子类二 " 使用super(子类名,self).方法...

  • JavaScript零散知识点

    继承 super 在子类中调用super,会调用父类的方法; 不用super,则会覆盖父类的方法。调用本类中的方法。

网友评论

      本文标题:子类中调用父类的私有方法

      本文链接:https://www.haomeiwen.com/subject/cqaqcxtx.html