Cocos2d中过度释放物体的影响? - “发送到解除分配的实例的消息”

时间:2011-11-28 08:21:36

标签: objective-c cocos2d-iphone dealloc memory-management

我有一个cocos2d项目。一切正常,除非我更换一个场景。 替换场景时,我收到消息“发送到解除分配的实例的消息”,后跟一个内存地址。

我的项目结构的方式,大多数CCNode是主要“场景”的子项,被替换。这些节点也存储在各种数组中,用于在类似对象之间进行迭代等。

我无法想象我是如何过度释放任何对象的,因为添加到数组会增加引用计数,就像添加到主场景一样。

我应该为此做些什么吗?如果我忽略它会发生什么? (关闭NSZombies?)当对象被释放时弹出错误,所以它应该只是意味着对象已经被释放了吗?

关于如何弄清楚我做错了什么的任何建议?

1 个答案:

答案 0 :(得分:2)

您需要修复它,因为一旦关闭NSZombies就会导致崩溃。在代码中的某处,您的内存管理不正确。 Xcode可以帮助您找到它:运行产品 - >分析(Shift-Command-B)。