-(NSString *) nibName
{
PO([self class]);
PO([super class]);
PO([self superclass]);
Run Code Online (Sandbox Code Playgroud)
只[self superclass]产生实际的超类.
[self class]: BGImageForBizs
[super class]: BGImageForBizs
[self superclass]: BGUIImageWithActivityIndicator
Run Code Online (Sandbox Code Playgroud)
ric*_*ter 10
使用发送消息super与发送消息相同self,但显式使用超类的方法实现.但是你的类可能没有实现-class方法本身,所以你已经-class从你的超类继承了它的实现.
实际上,你可能继承了它NSObject的实现-class(即使NSObject不是你的直接超类; -class也不是经常被覆盖的方法).默认实现只返回对象isa指针的内容,告诉你Class它是什么.
换句话说,重要的是要认识到调用super不会将对象完全转换为其超类的实例; 它只运行该方法的超类代码.如果在该代码中有任何内省,它仍然将您的对象视为它开始的任何类的实例.
自我和超级是同一个对象.super所做的唯一事情是控制调用该方法的哪个实现.由于您的类和超类都使用NSObject的-class实现,因此在两种情况下都会调用相同的方法.
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |