O que exatamente é super em Objective-C?

Tanto quanto sei, é um ponteiro para a superclass. É hard-wired com a superclass, e não dinamicamente descoberto em tempo de execução. Gostaria de saber mais em detalhes …

Alguém?

    super

    Essencialmente, ele permite que você use as implementações da superclass da class atual.

    Para os detalhes do tempo de execução do Objective-C:

    [super message] tem o seguinte significado:

    Quando ele encontra uma chamada de método, o compilador gera uma chamada para uma das funções objc_msgSend, objc_msgSend_stret, objc_msgSendSuper ou objc_msgSendSuper_stret. As mensagens enviadas para a superclass de um object (usando a palavra-chave super) são enviadas usando objc_msgSendSuper; outras mensagens são enviadas usando objc_msgSend. Os methods que possuem estruturas de dados como valores de retorno são enviados usando objc_msgSendSuper_stret e objc_msgSend_stret.

    Então, sim, é estático e não é determinado em tempo de execução.

    É uma palavra-chave que é equivalente a self , mas inicia sua busca de envio de mensagens com a tabela de methods da superclass.

    super não é um ponteiro para uma class. Super é self , mas quando usado em uma expressão de mensagem, significa “procurar uma implementação começando com a tabela de methods da superclass”.

    Essas postagens no blog sobre o que é uma meta-class? , obter subclasss e classs e metaclasss pode fornecer algumas dicas sobre os aspectos internos disso.