关闭模式 UIViewController 时出现 EXC_BAD_ACCESS 错误
Posted
技术标签:
【中文标题】关闭模式 UIViewController 时出现 EXC_BAD_ACCESS 错误【英文标题】:EXC_BAD_ACCESS error on dismissing modal UIViewController 【发布时间】:2011-12-14 07:54:32 【问题描述】:这是我在这里的第一篇文章。
我是 iPhone SDK 的新手。请回答我的问题,即使它很简单。 我创建了一个基于导航的应用程序。层次结构如下:
NavigationController - RootViewController - ATableViewController(推过 RootViewController)
在 RootViewController 上,我首先推送了 ATableViewController。然后,我将展示一个带有 TabBarController 的视图控制器(它有四个选项卡,每个选项卡都有自己的导航控制器)。
现在我想在每个导航控制器上保留两个按钮。单击一个它应该关闭模态视图控制器,单击另一个它应该返回到 RootViewController。
所以,我在UINavigationBar
上保留了按钮来关闭模态视图控制器。然而,在解雇它时,我收到一个错误:
*** -[CALayer superlayer]: message sent to deallocated instance 0xb157840
回溯是:
#0 0x011bb657 in ___forwarding___ ()
#1 0x011bb522 in __forwarding_prep_0___ ()
#2 0x004c54e5 in _UIConvertDisplayPointToWindow ()
#3 0x004c5695 in +[UIWindow _hitTestToPoint:pathIndex:forEvent:] ()
#4 0x004a5709 in _UIApplicationHandleEvent ()
#5 0x01cf8992 in PurpleEventCallback ()
#6 0x0122b944 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#7 0x0118bcf7 in __CFRunLoopDoSource1 ()
#8 0x01188f83 in __CFRunLoopRun ()
#9 0x01188840 in CFRunLoopRunSpecific ()
#10 0x01188761 in CFRunLoopRunInMode ()
#11 0x01cf71c4 in GSEventRunModal ()
#12 0x01cf7289 in GSEventRun ()
#13 0x004aac93 in UIApplicationMain ()
#14 0x00001cd9 in main (argc=1, argv=0xbffff678) at main.m:14
请任何人帮助我。从两周开始,我一直在努力解决这个问题。我花了很多时间在谷歌上搜索它。
非常感谢任何帮助。
感谢阅读。
【问题讨论】:
您正在向不再存在的对象发送消息。但是,要真正回答这个问题是不可能的。请向我们展示您用于关闭控制器的代码,如果可能,请告诉我们它崩溃的行。您可以通过设置断点然后逐行逐行直到它崩溃来找到该行。 通常当你释放一个不应该释放的实例时,你会得到 exec_bad_access 错误,所以通过提供一些代码我想你可以得到更好的帮助。 在我看来,这个崩溃日志是不够的。当您访问一个已经被释放的变量时,这个崩溃正在发生。检查您正在访问的变量(CALayer)。 这就是我呈现具有 tabbarcontroller [self.navigationController presentModalViewController:pdvc animated:YES] 的视图的方式;它在 main 函数中崩溃了,我正在关闭控制器 -(IBAction)backToResults:(id)sender NSLog(@"GO back to results"); [自我dismissModalViewControllerAnimated:是]; 大家好,我有一个简单的疑问。我可以将 TabBarController 推到导航堆栈上吗?? 【参考方案1】:查看这篇文章如何设置NSZombieEnabled
。这将显示有关崩溃的更多详细信息,可以帮助您调试问题:
App crash only on iPhone Device and not in Simulator
【讨论】:
以上是关于关闭模式 UIViewController 时出现 EXC_BAD_ACCESS 错误的主要内容,如果未能解决你的问题,请参考以下文章
从 UINavigationController 中通过自定义转换关闭 UIViewController 时出现黑屏
关闭 MPMoviePlayerViewController 的全屏模式时出现问题
如何使 UIViewController 工具栏出现? [关闭]
呈现模态 UIViewController 时出现奇怪的崩溃
从 UIViewController 打开 SKScene 时出现 NSInvalidArgumentException