Наследование target-c - PullRequest
       32

Наследование target-c

1 голос
/ 20 февраля 2012

Может кто-нибудь объяснить мне, как наследование работает под капотом в Objective-C?

Допустим, у меня есть класс B, который наследует класс A. Что является связующим звеном между этими двумя предложениями, чтобы класс B мог иметь доступ к свойствам и методам класса A?

Ответы [ 2 ]

2 голосов
/ 20 февраля 2012

isa.

isa идентифицирует тип во время выполнения и ссылается на его динамический «клей» (см. vtable ).Из-за isa среда выполнения знает (или может определить), какие методы выполнять при отправке сообщения, а также тип self.

Когда создается экземпляр, ему присваивается isa.

Другой основной участник, конечно, компилятор, который вступает во владение, когда вы переходите на более низкие уровни -например, прямой доступ к переменным экземпляра и определение методов.Есть несколько вызовов, которые добавляет компилятор при создании объектов и при обмене сообщениями.

0 голосов
/ 20 февраля 2012

Попытайтесь понять следующий код

@interface SampleViewController : UIViewController{}

Это указывает на тот факт, что SampleViewController наследует UIViewController, и вы можете получить доступ ко всем свойствам / методам UIViewController.

Я согласен с тем, что Джастин сказал о динамическом'клей'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...