程序接收信号EXC_BAD_ACCESS

时间:2012-01-16 23:12:18

标签: iphone

当我点击带有代码

的完成按钮时
UIBarButtonItem * button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                          target:self
                                                                         action:@selector(dismissView:)] autorelease];

self.navigationItem.rightBarButtonItem=UIBarButtonSystemItemDone;
[[self navigationItem] setRightBarButtonItem:button];
[button release];

-(void)dismissView: (id)sender

{

[self.navigationController popToRootViewControllerAnimated:YES];

}

应用程序崩溃并发出消息程序接收信号EXC_BAD_ACCESS

任何想法都有问题。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

这一行是完全错误的:

self.navigationItem.rightBarButtonItem=UIBarButtonSystemItemDone;

删除它。您之后正在设置rightBarButtonItem,并且您无法将rightBarButtonItem设置为UIBarButtonSystemItemDone - 这根本没有任何意义。

哦,你过度释放button。同时删除[button release];

答案 1 :(得分:1)

您过度释放按钮。您在分配/ init时自动释放它,然后在将其设置为导航项后再次释放它。

答案 2 :(得分:1)

你过度释放button。第一行的+alloc调用已经在同一行的-autorelease上进行了平衡 - 此后您无需在其上调用-release