Вопрос подкласса в iOS - PullRequest
       1

Вопрос подкласса в iOS

1 голос
/ 27 января 2012

В моем случае UIViewController B является подклассом UIViewController A. B, безусловно, может обращаться ко всем методам и переменным из A, поскольку B является подклассом из A (то есть A является родителем B).

Однако A нужна переменная из B. Возможно ли это сделать?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 27 января 2012

Если переменная экземпляра, объявленная в подклассе, имеет метод getter, любой метод в суперклассе всегда может запросить объект своего класса, если он вызывает RespondsToSelector: для этого метода getter, и, если это так, вызвать его, чтобы получить значение переменная экземпляра.

0 голосов
/ 27 января 2012

На самом деле, если вам нужен такой тип отношений - ваш дизайн неправильный. Я имею в виду - вам не нужны наследственные отношения в вашем случае, а что-то вроде агрегации или композиции. Например, ваш тип отношений нарушает принцип подстановки Лискова.

НО. Цель C принимает обратные отношения. Вы можете использовать делегаты (@protocol) для описания интерфейсов, которые могут извлекать некоторые данные из неизвестных объектов, которые принимают этот протокол @.

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

0 голосов
/ 27 января 2012

Добавить эту переменную в качестве подкласса по умолчанию в подкласс A. Затем она также доступна в подклассе B?

Если это то, что вам не нужно, то я полагаю, что-то не так с вашим дизайном?

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