Это зависит от того, как вы их создали и нужно ли ссылаться на них где-либо еще.
Например:
- (void)loadView
{
[super loadView];
UIButton *someButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
someButton.frame = CGRectMake(0, 0, 50, 50);
[self.view addSubview: someButton];
}
В приведенном выше случае вам не нужно реализовывать viewDidUnload, потому что someButton автоматически высвобождается в loadView.
Другой пример:
- (void)loadView
{
[super loadView];
self.someButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
someButton.frame = CGRectMake(0, 0, 50, 50);
[self.view addSubview: someButton];
}
В этом примере вы хотели бы использовать viewDidUnload, поскольку у вас есть еще одна ссылка на некоторую кнопку, которая висит вокруг. Вы хотите, чтобы viewDidUnload отпустил эту кнопку и сбросил ссылку, чтобы вы не использовали ее не по назначению и не освободили память. В этом случае вы также захотите отпустить кнопку в методе dealloc, если viewDidUnload никогда не вызывается.