Ответ 1
Отправка сообщения с помощью super
совпадает с отправкой его на self
, но явно использует реализацию метода суперкласса. Но ваш класс, вероятно, не реализует сам метод -class
, поэтому вы уже наследуете реализацию -class
из своего суперкласса.
Фактически, вы, вероятно, наследуете NSObject
реализацию -class
(даже если NSObject
не является вашим непосредственным суперклассом; -class
- это не метод, который часто перераспределяется). И реализация по умолчанию просто возвращает содержимое указателя объекта isa
, сообщая вам, что это за Class
.
Другими словами, важно признать, что вызов super
не полностью преобразует ваш объект в экземпляр его суперкласса; он просто запускает код суперкласса для этого метода. Если в этом коде есть какая-либо интроспекция, он все равно видит ваш объект как экземпляр любого класса, в котором он начинался.