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

对于在使用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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我们常常会听说 Objective-C 是一门动态语言,那么这个「动态」表现在哪呢?我想最主要的表现就是 Obje...
    Ethan_Struggle阅读 6,628评论 0 7
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,895评论 0 9
  • 继上Runtime梳理(四) 通过前面的学习,我们了解到Objective-C的动态特性:Objective-C不...
    小名一峰阅读 4,160评论 0 3
  • 盛夏 我又剪短 我的发 好多开怀 好多美丽 读萧秋水老师的作品 如饮甘泉般舒服 原来 她也是一位不断远行的行...
    白亦舒阅读 2,732评论 0 0
  • display: inline; 可以让元素变成行内模式的标签 display: block; 可以让元素变成...
    小白你怎么这么白阅读 1,783评论 0 0

友情链接更多精彩内容