self表示的是当前类开辟内存的对象(文档里写的是当前的消息接受者 Return Value: The receiver.)

来源:互联网 发布:三观尽毁的淘宝评论 编辑:程序博客网 时间:2024/06/05 08:47


答疑:当在子类中调用super跳到父类中执行self时,其self实际指向的是子类(比如self.或者[self doSomething]等),当在子类里找不到这个属性或者方法时,会到父类中去中,如果还找不到,就会执行消息转发,转发失败则crash


(实例方法中的self,是对象首地址;类方法中的self,是class


self表示的是当前类开辟内存的对象(文档里写的是当前的消息接受者 Return Value: The receiver.


super是一个编译器指示符,当调用super时,会给当前receiver发送消息,我要调用父类的方法,然后才回去父类的方法列表中查找方法


所以调用[super class]时,其实是当前类,因为接收消息的是当前类


self_cmd都是当前类的隐藏参数_cmd表示当前的方法selector


0 0