В target-c (касание какао) у меня есть серия контроллеров UIViewController, между которыми я переключаюсь.
- (void)switchViews:(id)sender
{
UIButton *button = (UIButton *)sender;
UIViewController *nextViewController;
int tag = button.tag;
switch (tag)
{
// -- has already been created
case kFinancialButton:
nextViewController = financials;
break;
case kSocialButton:
if (social == nil)
{
SocialViewController *socialViewController = [[SocialViewController alloc] initWithNibName:@"SocialViewController" bundle:nil];
social = socialViewController;
[socialViewController release];
}
nextViewController = social;
break;
case kTicketingButton:
if (ticketing == nil)
{
TicketingViewController *ticketingViewController = [[TicketingViewController alloc] initWithNibName:@"TicketingViewController" bundle:nil];
ticketing = ticketingViewController;
[ticketingViewController release];
}
nextViewController = ticketing;
break;
}
///////
------> // -- [button/nextViewController release]????
///////
[self setActiveButton:button];
}
Как вы видите, я назначаю один из контроллеров представления для "nextViewController". Что мне интересно, так это то, нужно ли мне выпускать эту «локальную» переменную или можно оставить ее в покое, поскольку она просто указывает на один из моих контроллеров представления (который я выпускаю в dealloc). Я не думаю, что «тег» должен быть выпущен, так как это «примитив», правильно? Как насчет кнопки? Я не совсем понимаю, что должно и не должно быть выпущено явно, поэтому, возможно, я слишком осторожен. Заранее спасибо.