isa
.
isa
определяет тип во время выполнения и ссылается на его динамический «клей» (см. vtable). Из-за isa
среда выполнения знает (или может определить), какие методы выполнять при отправке сообщения, а также тип self
.
При создании экземпляра назначается его isa
.
Другим основным источником информации является, конечно же, компилятор, который берет верх, когда вы переходите на нижние уровни - например, доступ к переменным экземпляра напрямую и определение методов. Существует множество вызовов, которые компилятор добавляет при создании объектов и при обмене сообщениями.
Что означает «клей»? И вы хорошо понимаете предметную ориентацию/наследование как таковое? То есть, вы уже работали с другим объектно-ориентированным языком? – DarkDust
Что касается сообщений, документы объясняют это здесь: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtHowMessagingWorks.html#//apple_ref/doc/uid/TP40008048- CH104-TPXREF134 – Monolo