2010-08-24 72 views
0

所以我有一个程序,我正在开发和作为即时通讯相当新的Objective-C和可可触摸我不是很熟悉的内存管理在iPad应用程序开发的概念。我的问题是我的程序在没有任何警告的情况下一直崩溃,并且没有告诉我为什么,我打开断点并显示exc_bad_access信号。这导致我相信我没有正确处理内存。或者我已经结束的其他事情都在看我的努力。无论哪种方式我需要一些帮助。如果任何人都可以看看应用程序,并告诉我任何可能导致它行事的事情,那就太好了。需要内存管理的帮助

该程序的重​​点在于它显示了20个数字为0-19的玛雅字形,您一次将一个字形拖拽到白色的“拖放区域”中,并添加它们并显示结果。但是几乎每次只要第二个字形被放入就退出,或者它将显示答案,并且当您删除其中一个字形以添加另一个字形时,它将退出。

任何帮助将不胜感激。感谢计算器:)

source files here

回答

1

结识调试器。在看到EXC_BAD_ACCESS和程序暂停的地方,查看调用堆栈,以便真正了解信号的来源。

此外,在访问已被释放的对象时,在环境变量中将NSZombieEnabled设置为YES会很有用。为此,请打开可执行文件的信息面板(组&文件窗格,展开'可执行文件',并打开您的项目构建的可执行文件的信息面板),并在“参数”中添加一个名为NSZombieEnabled的值为YES的环境变量。有了这个功能,任何被释放的对象实际上都会变成一个'僵尸'类的实例,这将允许您捕获发送到这些实例的任何消息。