Помимо хороших решений, вы можете сделать это:
@try {
switch(xxx) {
case 1:
...
return YES;
break;
case 2:
...
return NO;
break;
case 3:
...
return YES;
break;
}
} @finally {
[test release];
}
Наконец блоки запускаются даже после возврата.
Решение для автоматического выпуска, вероятно, выглядит чище, но если по какой-то причине вы действительно не хотите использовать автоматический выпуск, вы можете сделать это.