Ну, на этот вопрос сложно ответить, учитывая, что демонстрируемый вами «более простой метод» может привести к совершенно оптимальному коду или довольно неудачной утечке памяти!
Как указывает Drawnonward, установка self.containerView аналогична вызову [self setContainerView:], и если вы используете @synthesize для генерации своих методов получения и установки, ваш метод setContainerView: будет выглядеть примерно так:
- (void)setContainerView:(UIView *)view {
if (containerView != view) {
[view retain]
[containerView release];
containerView = view;
}
}
Как вы можете видеть, эти сеттеры управляют всем управлением памятью за вас, поэтому я считаю, что Apple любит поощрять разработчиков воспользоваться этим.
Конечно, если вы хорошо осведомлены о своих указателях и количестве ссылок, то нет ничего плохого в том, чтобы напрямую устанавливать containerView, как вы продемонстрировали.
РЕДАКТИРОВАТЬ : вы можете делать то, что вы пытаетесь сделать, в одной строке кода, а также использовать ваш установщик для упрощения управления памятью, с помощью следующего:
self.containerView = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];