Objective-C中的超级特性是什么?
据我所知,这是一个指向超类的指针。 它与超类很难连接,并且在运行时不会dynamic计算出来。 想更详细地了解它…
任何人?
super
从本质上讲,它允许您使用当前类的超类的实现。
Objective-C运行时的细节 :
[super message]
具有以下含义:
当遇到方法调用时,编译器生成对函数objc_msgSend,objc_msgSend_stret,objc_msgSendSuper或objc_msgSendSuper_stret之一的调用。 发送到对象的超类(使用super关键字)的消息使用objc_msgSendSuper发送; 其他消息使用objc_msgSend发送。 将数据结构作为返回值的方法使用objc_msgSendSuper_stret和objc_msgSend_stret发送。
所以是的,它是静态的, 不是在运行时确定的。
这是一个等同于self
的关键字,但用超类的方法表开始它的消息分派search。
super
不是指向一个类的指针。 Super是self
,但是当用在消息expression式中时,它意味着“寻找一个以超类的方法表开始的实现”。
这些博客张贴什么是元类? , 获取子类和类和元类可能会给你一些关于这个内部的见解。