发送到解除分配实例的searchDisplayController消息(仅在iOS7中)

发送到解除分配实例的searchDisplayController消息(仅在iOS7中),ios7,exc-bad-access,searchdisplaycontroller,Ios7,Exc Bad Access,Searchdisplaycontroller,这是我在AppDelegate iMapView = [[iMapViewController alloc] init]; if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { CGSize result = [[UIScreen mainScreen] bounds].size; if(result.height == 568) { iMa

这是我在
AppDelegate

iMapView = [[iMapViewController alloc] init];
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        CGSize result = [[UIScreen mainScreen] bounds].size;
        if(result.height == 568)
        {
            iMapView.view.frame = CGRectMake(0, 0, 568, 320);
        }
    }

    [viewController.view addSubview:iMapView.view];  // crashing here
我打开NSZombie并发现问题:

[iMapViewController searchDisplayController]: message sent to deallocated instance 0xd81d740
但我从未在任何地方使用过
searchDisplayController
或其委托

@interface iMapViewController : UIViewController<UIAlertViewDelegate>
@interface-iMapViewController:UIViewController
它只发生在iOS 7中,没有ARC

你能给我一些建议吗


谢谢

完成此操作后,不要创建视图控制器的全局实例

iMapViewController *newObject = [[iMapViewController alloc]initWithNibName:@"iMapViewController" bundle:nil];  

您可能正在释放iMapView并再次访问它。

检查xib,您是如何创建iMapViewController的?就像从其他类复制粘贴或从文件->新文件创建新视图一样,我从代码创建我的视图,我的xib为空您的xib名称是什么,请将您的xib名称放入代码中..我使用“iMapView=[[iMapViewController alloc]initWithNibName:@“iMapViewController”bundle:nil];“但没有任何更改请勿执行此iMapViewController*新对象=[[iMapViewController alloc]initWithNibName:@“iMapViewController”捆绑包:nil];