2013-09-03 3 views
0

Скажем, унаследованный от класса, я могу вызвать [self someMethod], если someMethod переписан; Я также могу вызвать [super someMethod].Могу ли я вызвать метод super's в Objective-C

Что делать, если я использую композицию вместо этого. Скажем, у меня есть porperty

@propery (nonatomic, strong) XXXController xxController; 

Использование [self.xxController someMethod] для вызова SomeMethod, но как вызвать xxController «s супер версии SomeMethod?

+0

Я вполне уверен, что это невозможно в Objective C. –

ответ

3

Нет, вы не можете этого сделать *. Использование композиции не позволяет вам разбить инкапсуляцию.

* (Это на самом деле можно сделать это с помощью функции во время выполнения, но вы действительно, действительно, действительно не должны делать это!)

2

Вы не можете сделать это. И ты этого не хочешь. Стили композиции или нет, объект должен реализовывать свои собственные методы и, если необходимо, называть его super.

Вместо этого вы должны подкласса XXXController работать, как вы хотите, вызывая super по мере необходимости в этом подклассе.

Смежные вопросы