推/弹播视图控制器EXC_BAD_ACCESS

时间:2011-02-17 21:01:35

标签: iphone uiviewcontroller exc-bad-access

任何人都知道为什么我推/弹localSearchViewController,我得到一个EXC_BAD_ACCESS错误后像5推/弹

if (localSearchViewController == nil)
    localSearchViewController = [[LocalSearchViewController alloc] init];

    CBAAppAppDelegate *app = (CBAAppAppDelegate *) [[UIApplication sharedApplication] delegate];

    [app.navBarController.navigationBar setHidden:YES];

    [app.navBarController pushViewController: localSearchViewController
                                    animated:YES];

2 个答案:

答案 0 :(得分:0)

我不知道这是否是导致崩溃的原因,但除非您覆盖了视图控制器的init方法,否则您应该使用其指定的初始化程序:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

如果您在实现文件中定义了此方法,请确保您也在其上调用super。

如果这不能解决您的问题,您是否可以尝试通过此方法在localSearchViewController中设置断点来准确找到代码崩溃的位置。这很可能是代码中某处的过度发布问题。

[编辑添加]

以下是初始化视图控制器的代码应如下所示:

localSearchViewController = [[LocalSearchViewController alloc] initWithNibName:@"YourNibName" bundle:nil];

答案 1 :(得分:-1)

用花括号括起来。

if (localSearchViewController == nil) {
    localSearchViewController = [[LocalSearchViewController alloc] init];

    CBAAppAppDelegate *app = (CBAAppAppDelegate *) [[UIApplication sharedApplication] delegate];

    [app.navBarController.navigationBar setHidden:YES];

    [app.navBarController pushViewController: localSearchViewController
                                animated:YES];
}