【问题标题】:application crash due to navigate to different views由于导航到不同视图而导致应用程序崩溃
【发布时间】:2012-05-23 09:42:28
【问题描述】:

当我导航到不同的视图超过 10 到 11 次时,我的应用程序崩溃了。我的意思是我在主屏幕上有 6 个按钮,按下它们会带您进入不同的视图。当我反复按下这些按钮时,我的应用程序崩溃了。我已经花了 3 天时间,但没有提出任何解决方案。这是应用程序崩溃的代码

当我取消注释发布声明时,它会在第一次后崩溃。

-(IBAction) goToLiveAlerts{
    teamAlerts *showLiveAlerts=[[teamAlerts alloc] initWithNibName:@"teamAlerts" bundle:nil];
    [self.navigationController pushViewController:showLiveAlerts animated:YES];
        //[showLiveAlerts release];
}

当我取消注释时,我的控制台错误是 “wait_fences:未能收到回复:10004003 [切换到进程2093] [切换到进程2093] 程序接收信号:“EXC_BAD_ACCESS”。” -(IBAction)goToPhotos{ PicturesGallery *showPictures=[[picturesGallery alloc] initWithNibName:@"picturesGallery" bundle:nil]; [self.navigationController pushViewController:showPictures animated:YES]; //[显示图片发布]; }

【问题讨论】:

  • 请提供代码和崩溃回溯。我们不是心灵感应。
  • 您是否分析过您的应用并查看未聚焦的视图是否已解除分配?
  • 如何解除分配不在焦点的视图。请提供示例。它会帮助我理解
  • 您需要在 viewDidDisappear 方法中释放对象。当内存管理不善时,这种错误就会出现。您正在创建对象,但它们没有在适当的时刻释放。
  • 请提供您编写的代码。你在使用 ARC 吗?

标签: iphone ios


【解决方案1】:

您是否使用 ARC?如果不是,根据你的代码,你的代码有一些内存泄漏,试试这个:

-(IBAction)goToPhotos{
    picturesGallery *showPictures=[[picturesGallery alloc] initWithNibName:@"picturesGallery" bundle:nil];
    [self.navigationController pushViewController:showPictures animated:YES];
    [showPictures release];
}

无论如何,你需要提供更多的代码崩溃日志。


根据您的崩溃日志,EXC_BAD_ACCESS 表示存在一些内存泄漏。在 Xcode 中启用NSZombie 进行调试。在 Xcode 4.3 中,转到 Product->Edit Scheme->Diagnostics 并检查 Enable Zombie Objects

【讨论】:

  • 如果我使用发布声明,那么它会在导航 5 次后崩溃
  • ARC 是 Automatic Reference Counting,启用 ARC 后,您不需要释放 showPictures,因为编译会为您完成。如果没有 ARC,您必须手动释放 showPictures
  • 请提供更多崩溃日志。
  • wait_fences:接收不到回复:10004003 [切换到进程 2093] [切换到进程 2093] 程序收到信号:“EXC_BAD_ACCESS”。
  • EXC_BAD_ACCESS 表示存在一些内存泄漏。在 Xcode 中启用NSZombie 进行调试。在 Xcode 4.3 中,转到 Product->Edit Scheme->Diagnostics 并检查 Enable Zombie Objects
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-17
相关资源
最近更新 更多