Вы называете [super viewDidDisappear: animated] в iOS? - PullRequest
0 голосов
/ 14 марта 2011

В шаблоне, который Apple дает вам, я вижу, что они имеют:

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

Я понимаю, что вы хотите, чтобы ваш суперкласс выполнял любую загрузку представления перед вашим собственным просмотром.Для viewDidDisappear, вы делаете то же самое по той же причине?

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
}

Ответы [ 2 ]

1 голос
/ 14 марта 2011

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

Единственное исключение из этого - метод dealloc, в котором вы должны вызывать[super dealloc] последнее, чтобы убедиться, что вы очистили свой собственный класс должным образом, прежде чем любые ссылки могут быть потеряны и вызвать утечку памяти.

0 голосов
/ 14 марта 2011

Я бы сказал, что вещи всегда должны разбираться в обратном порядке их построения. Вы звоните [super viewWillAppear:animated] в начале viewWillAppear, чтобы у суперкласса была возможность настроить действия по умолчанию, а затем вы получили возможность изменить.

Для звонка на [super viewDidDisappear:animated] вы должны сделать свой исчезающий код перед тем, как позвонить на super в конце вашего viewDidDisappear. Таким образом, если у вас есть какие-либо ссылки на содержимое представления по умолчанию, они не будут выпущены до того, как вы закончите с ними. Если вы ничего не используете в суперклассе, то это, вероятно, не имеет значения.

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