-
对象方法:
- 会先在实例的类里找对应的实例方法,如果没有则向父类的类里找,一直找到根类,一直没有,则会抛出异常。(能够找到父类是通过superclass指针)。
-
类方法:
- 在当前类的元类里找对应的类方法,没有找到则会向父类元类里找,一直找到根类的元类,如果还是没有,根类的元类则会去当前元类的类对象里去找,(虽然类对象里存的是实例方法,但是send_message的本质并不区分是类方法还是实例方法,只要找到同名的就会去调用。所以当调用一个类方法,但是当前类方法一直到NSObject都没去实现这个类方法,但是NSObject却实现了同名的实例方法,这个实例方法最后会被调用)。
网友评论