Что делает [супер viewWillAppear] делают, и когда это требуется?

-(void)viewWillAppear:(BOOL)animated{
//something here
[super viewWillAppear];
}

[super viewWillAppear]; всегда требуемый? Если не, когда и почему Вы используете его?

28
задан Sean Vieira 11 August 2011 в 15:09
поделиться

1 ответ

Прежде всего, правильная плита котла должна быть:

-(void)viewWillAppear:(BOOL)animated{
   [super viewWillAppear:animated];
   //something here
}

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

Обычно вы хотите сначала вызвать реализацию суперкласса в любом методе. На многих языках это необходимо. В Objective-C это не так, но вы легко можете столкнуться с проблемами, если не поместите его в начало своего метода. (Тем не менее, я иногда нарушаю этот шаблон.)

Требуется ли вызов super реализации ? В случае этого конкретного метода вы можете получить неожиданное поведение, если не вызовете его (особенно, если вы создали подкласс UINavigationController , например). Так что ответ нет не в техническом смысле, но, вероятно, вам следует делать это всегда.

Однако во многих других методах могут быть веские причины не вызывать супер .

51
ответ дан 28 November 2019 в 02:52
поделиться