内存警告后,故事板loadView中的EXC_BAD_ACCESS

时间:2012-08-16 17:07:25

标签: storyboard automatic-ref-counting exc-bad-access loadview

我创建了两个视图控制器,例如AB,其中包含storyboard和ARC。 VC A正在B调用performSegueWithIdentifier,而BA返回dismissViewControllerAnimated。这很有效,直到我在VC Memory Warning期间模拟B。如果我这样做,我的应用程序崩溃了

Thread 1: EXC_BAD_ACCESS (code=1, address=0x...)

我一执行dismissViewControllerAnimated。为了进行调试,我已将自己的loadView添加到A(仅使用NSLog和[super loadView]),我可以看到它已被调用且应用程序在[super loadView]中崩溃

我知道,A的视图层次结构因内存警告而被破坏。但正如我理解文档一样,在dismissViewControllerAnimated B loadView之后访问文档时,应自动重新创建文档。在viewDidLoad非我的代码运行时,所有内容都将在viewWillAppear和{{1}}中初始化,并且在崩溃之前调用其中的所有内容。有没有人有一些建议如何进一步调试,或者如何在坏地址变坏之前获取它的身份?

2 个答案:

答案 0 :(得分:0)

尝试在presentsViewController中使用strong

例如:

@property(强,非原子)CameraViewController * myCVC;

答案 1 :(得分:0)

在重建视图控制器A之后找到问题。在A我使用一个UIPanGestureRecognizer和一个UITapGestureRecognizer。在故事板上添加这两个对象还为viewDidUnload添加了两行,在卸载A的视图时将两个识别器设置为nil。对于... GestureRecognizer似乎是一个bug。删除这两行解决了这个问题。