分类覆盖同名方法,以及消息查找问题。
来源: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了。
00
相似问题