освобождение объекта приводит к exc_bad_access - PullRequest
0 голосов
/ 05 октября 2011

Меня немного смущает следующий код.Я был хорошим солдатом, расставлял точки над точками «i» и пересекал точки, выпуская объект tmp в следующем фрагменте.Однако во время выполнения я получаю «EXC_BAD_ACCESS»

    -(void) aMethod {
            .
            .
        if (testMode) {         
            MyClass *tmp = [[MyClass alloc] init];
            [tmp aMethodInTheClass];
            [tmp release];
        }
            .
            .
    }

Если я удаляю оператор [tmp release], ошибка не генерируется.

Является ли выпуск не нужным, поскольку областьобъекта 'tmp' прекращается после внутреннего условия if?

Thx.

1 Ответ

0 голосов
/ 05 октября 2011

Попробуйте это,

-(void) aMethod {
            .
            .
        if (testMode) {         
            MyClass *tmp = [[MyClass alloc] autorelease];
            [tmp aMethodInTheClass];
        }
            .
            .
    }

Удачи!

...