这听起来像是一个菜鸟问题,因为它是。我已经尝试了几天来弄清楚我在做什么让它崩溃,但我无法弄清楚。
我有各种使用 CCActions 的对象。当需要从屏幕上移除对象时,我调用 [spriteObject stopAllActions];然后我释放 Action 。 (我保留了 init 中的操作,因为我试图避免这种崩溃)。
程序在 CCScheduler 的这一行随机崩溃:
[elt->currentTimer release];
错误消息是我正在向已释放的实例发送消息。但我不知道什么时候被释放。我保留了我创建的所有 Action 。我什至尝试在不释放操作的情况下运行程序,看看是否是原因,但它仍然崩溃。
有时它会在 20 分钟后崩溃,有时会在 2 分钟后崩溃。这是相当随机的。
我不确定要放什么,因为代码很分散。
基本上,我有一个 Sprite,它包含一个“策略”对象,其中包含正在运行的 CCAction。在运行时,我创建一个“策略”并将其传递给保留该策略的 Sprite 。
直到程序执行结束, Sprite 才会被释放。
关于如何弄清楚什么被释放,在哪里以及为什么被释放的任何想法?我实在想不通。不知道在这里放什么信息。 :C
最佳答案
Cocos2d 目前不是线程安全的,并且不希望从其他线程调用 api。
关于cocos2d-iphone - CCScheduler 崩溃作为消息发送到解除分配的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9681708/