Вот ситуация. Скажем, у меня есть класс под названием MYFoo. Здесь он инициализатор:
-init
{
self = [super init];
if (self)
{
// during initialization, something goes wrong and an exception is raised
[NSException raise ...];
}
return self;
}
Теперь где-то еще я хочу использовать объект MYFoo, поэтому я использую общий шаблон:
MYFoo *foo = [[[MYFoo alloc] init] autorelease];
Но что произойдет, так это то, что даже если есть попытка/уловка во 2-й части, будет выделен объект MYFoo, будет выведено исключение, пропущено авторекламу и неинициализированный объект MYFoo.
Что должно произойти здесь, чтобы предотвратить эту утечку?