释放对象导致exc_bad_access

时间:2011-10-05 04:43:26

标签: exc-bad-access

我对以下代码感到困惑。我是一名优秀的士兵,通过释放以下片段中的tmp对象来点击i并穿过t。但是,在运行时,我得到“EXC_BAD_ACCESS”

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

如果删除[tmp release]语句,则不会生成错误。

是不是需要释放,因为'tmp'对象的范围在内部if条件之后停止了?

THX。

1 个答案:

答案 0 :(得分:0)

试试这个,

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