好了,现在这对我来说真的很令人费解,我真的无法理解它…我用谷歌搜索了一下,还是一无所获。
我有一个UINavigationController设置推送一个根视图控制器。根视图控制器然后推送一个新的视图控制器(实际上是一个TableViewController)当UIButton被按下时,这就是事情变得奇怪的地方。
只有当我将"animated"设置为"YES"时,应用程序才会崩溃。
[[self navigationController] pushViewController:listView animated:YES];
如果我改变这一点,并将"动画"设置为"NO",应用程序继续正常运行,功能非常好…我把"animated"设置回"YES",它又崩溃了。
最终,如果我能保留动画,我会很高兴的,毕竟这是iOS最美丽的东西之一,但在目前的情况下,我一辈子都不知道发生了什么。
请帮我找出这里可能出了什么问题。
当动画打开时,Core animation正在访问CALayer
对象,即从根视图控制器和新视图控制器中绘制的视图部分。当动画关闭时,核心动画不需要根视图控制器的CALayer
对象。也许你在根视图中释放了一些视图它支持CALayer
对象的速度太快了。
谢谢Berna先生,实际上是您给了我解决问题的建议。问题是我推送的视图控制器实际上是一个表视图控制器,它的单元格是根据NSArray中找到的条目动态创建的。我在viewDidLoad函数中初始化了NSArray,但是我已经将它设置为自动释放,所以它在CALayer绘制视图之前被从内存中释放。