我似乎正在释放像标签栏本身,导航控制器或???这样的东西,当我转到特定的视图控制器然后点击标签栏到特定标签时会发生这种情况(例如,如果我点击了3个标签的中间标签,没问题,但如果我点击最右边的标签,我就会崩溃)。我的程序基本完成,此时我有一个非常大的代码库。任何人都有任何调试的建议 - 我一直等到现在才开始研究这个。我的感觉是,查看dealloc例程和相邻代码中的任何版本。你可以建议什么东西少“手动”?谢谢!
答案 0 :(得分:1)
如果不了解更多信息,请按照以下方式进行操作。
在日志查看器中,在gdb中发生异常后键入backtrace。希望这会给你一个确切的行,显示哪个对象被释放了太多次。
查找对此对象的引用,看看是否可以通过检查找到不必要的版本,自动释放等。您不应释放/自动释放您的执行路径不拥有的任何内容(通过alloc)。
您可能会幸运地打印出此对象的保留计数(通过将retainCount消息发送到违规对象)。虽然开发人员的文档强烈暗示这是毫无意义而且没有成果,但我发现在我偶然释放某些东西时帮助我缩小范围是有用的。