What exactly is super in Objective-C?

super

Essentially, it allows you to use the implementations of the current class’ superclass.

For the gritty details of the Objective-C runtime:

[super message] has the following meaning:

When it encounters a method call, the
compiler generates a call to one of
the functions objc_msgSend,
objc_msgSend_stret, objc_msgSendSuper,
or objc_msgSendSuper_stret. Messages
sent to an object’s superclass (using
the super keyword) are sent using
objc_msgSendSuper; other messages are
sent using objc_msgSend. Methods that
have data structures as return values
are sent using objc_msgSendSuper_stret
and objc_msgSend_stret.

So yes, it is static, and not determined at runtime.

Leave a Comment