Вторая, более общая цель для этого шаблона в Какао состоит в том, что Obj-C и Какао поощряют чрезвычайно длинные, подробные имена для методов и переменных, поэтому один вызов метода может в конечном итоге занимать несколько строк; использование вызовов методов в качестве прямых аргументов для других методов может быстро стать нечитаемым, поэтому соглашения поощряют настройку каждого аргумента для метода заблаговременно, помещая их в промежуточные переменные, затем используя переменные в качестве аргументов для повышения удобочитаемости и облегчая их изменение один аргумент без необходимости копаться во вложенных вызовах методов.

тоящее время я работаю над Apress "Beginning iPhone 3 Development". Стандарт, который они используют в своих приложениях-примерах, похож на следующий код:

- (void)viewDidLoad {
    BlueViewController *blueController = [[BlueViewController alloc] 
                                         initWithNibName:@"BlueView" bundle:nil];
    self.blueViewController = blueController;
    [self.view insertSubview:blueController.view atIndex:0];
    [blueController release];
}

8.14.11 ОБНОВЛЕНИЕ (дополнительная информация)
blueViewController объявлен следующим образом:

@property (retain, nonatomic) BlueViewController *blueViewController;

Всякий раз, когда они выполняютalloc они помещают это в какую-то временную переменную (здесьblueController) тогда они назначают это, тогда они выпускают это. Эта временная переменная мне кажется излишней.
Я упростил код следующим образом:

- (void)viewDidLoad {
    self.blueViewController = [[BlueViewController alloc] 
                              initWithNibName:@"BlueView" bundle:nil];
    [self.view insertSubview:blueViewController.view atIndex:0];
}

- (void)dealloc {
    [blueViewController release];
    [super dealloc];
}

Мой модифицированный код работал точно так же в симуляторе iPhone. Теперь я знаю правило, что если вы выделяете что-то, вам нужно его освободить. И я освещаю это в моемdealloc метод. Но есть ли какое-то преимущество в том, что релиз будет прямо вViewDidLoad (функция, в которойalloc назывался)? Или одинаково хорошо иметьrelease в вашейdealloc такой метод?
Спасибо за любую помощь,
-j

Ответы на вопрос(3)

Ваш ответ на вопрос