2011-04-19 106 views
0

我有一个用户界面按钮,当它按下时它工作正常。 但是,如果我按下按钮三次,我得到一个EXc_BAD_ACCESS错误。 我以为我在某处发布了一些东西,但找不到解决方案。 你能帮我吗? 亲切的问候。UIButton EXC_BAD_ACCESS错误

这是我按下按钮时的功能。在dealloc中我释放它们。当我跟踪时,它不会给出函数中的错误。我在函数后得到它,但是我不知道代码在这个函数之后的位置。

- (IBAction) doSomething: (id)sender 
{ 
    [self.answerDict replaceObjectAtIndex:currentPageNumber withObject:@"1"]; 
    [self.b setImage:nil forState:UIControlStateNormal]; 
    [self.c setImage:nil forState:UIControlStateNormal]; 
    [self.d setImage:nil forState:UIControlStateNormal]; 
    [self.e setImage:nil forState:UIControlStateNormal];   

    UIImage *img = [UIImage imageNamed:@"a.jpg"]; 
    [self.a setImage:img forState:UIControlStateNormal]; 
    [img release]; 
} 
+1

你能启用NSZombieEnabled为可执行,看看控制台则表明发生崩溃? – 2011-04-19 07:27:09

回答

3
UIImage *img = [UIImage imageNamed:@"a.jpg"]; 
[self.a setImage:img forState:UIControlStateNormal]; 
[img release]; 

[img release];的问题。你正在释放一个你不拥有的物体。这种情况下的img是自动发布的。

删除[img release];,看看是否

+1

是的,没有错误。非常感谢你。 – Can 2011-04-19 07:47:56

0

我建议你逐行评论代码,这样你就会明白BAD_ACCESS错误的目的是什么。在DoSomething的冷杉接近全码:可能是主要的原因是在你的按钮...