分类覆盖同名方法,以及消息查找问题。

来源:10-7 面试题-Runtime 如何实现 Weak 属性

夜鸽

2019-06-28

场景:
有三个类 person、person的分类personA、person的分类NSObjectA
每个类都有一个 +(void)eat;
调用 [Person eat];
不管编译的顺序怎么调整始终调用的是person-category的eat方法;
按照isa 指针查找类对象查找的元类。元类指向自己。然后只想根类nsobject。按照这个思路应该调用NSObject 的eat方法。
求助希望有人可以解惑!!!

写回答

1回答

逆风

2019-07-01

person的分类NSObjectA是什么意思?

你的意思是不是说有三个类person、person分类、NSObject分类

各自都有+eat方法,并且person继承的是NSObject。

我觉你是不理解错了,person的元类不等于NSObject,自己元类有实现方法了,就不用去查找NSObject了。

0
0

面试跳槽提升必备 全面解析iOS中的Runtime机制

高薪职位,复杂业务需求,高性能APP,Runtime技术不可不学。

275 学习 · 48 问题

查看课程