需要内存管理方面的帮助

时间:2010-08-24 01:39:24

标签: objective-c cocoa-touch

所以我有一个我正在开发的程序,而且我对objective-c和cocoa触摸相当新,我不太熟悉ipad应用程序开发中的内存管理概念。我的问题是我的程序在没有任何警告的情况下继续崩溃而没有告诉我原因,我打开了断点并显示了一个exc_bad_access信号。这让我相信我没有正确处理内存。或者是我在努力中看到的其他东西。无论哪种方式我需要一些帮助。如果有人可以看看应用程序,并告诉我任何可能导致它采取行动的方式,这将是伟大的。

程序的要点是它显示数字0-19的20个玛雅字形,你将字形一次拖动到白色的“放置区”中,然后添加它们并显示结果。但是,几乎每次第二个字形一旦退出就会退出,或者它会显示答案,当你删除其中一个字形以添加另一个字符集时它会退出。

任何帮助将不胜感激。谢谢stackoverflow:)

source files here

2 个答案:

答案 0 :(得分:3)

为什么不阅读Apple的文档,这在这一特定主题上相当出色?

http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/memorymgmt/memorymgmt.html

答案 1 :(得分:1)

了解调试器。在您看到EXC_BAD_ACCESS并且程序停止的时刻,查看调用堆栈以实际查看信号源是什么。

此外,在访问已经解除分配的对象的问题的情况下,在您的环境变量中将NSZombieEnabled设置为YES是有用的。为此,打开可执行文件的信息面板(“组和文件”窗格,展开“可执行文件”,打开项目构建的可执行文件的信息面板),然后在“参数”中添加名为NSZombieEnabled的环境变量,其值为YES 。启用此功能后,任何已解除分配的对象实际上都会变成“僵尸”类的实例,这将允许您捕获发送到这些实例的任何消息。