我对以下代码感到困惑。我是一名优秀的士兵,通过释放以下片段中的tmp对象来点击i并穿过t。但是,在运行时,我得到“EXC_BAD_ACCESS”
-(void) aMethod {
.
.
if (testMode) {
MyClass *tmp = [[MyClass alloc] init];
[tmp aMethodInTheClass];
[tmp release];
}
.
.
}
如果删除[tmp release]语句,则不会生成错误。
是不是需要释放,因为'tmp'对象的范围在内部if条件之后停止了?
THX。
答案 0 :(得分:0)
试试这个,
-(void) aMethod {
.
.
if (testMode) {
MyClass *tmp = [[MyClass alloc] autorelease];
[tmp aMethodInTheClass];
}
.
.
}
祝你好运!