cocos2D解除分配CCScheduler

时间:2012-01-18 16:14:31

标签: delegates cocos2d-iphone scheduler scene

当我将CCSprite(实体)子类化以接收触摸输入时,此问题就开始发生了。当我通过推送到另一个主要场景离开主场景时,我让所有实体从共享的CCTouchDispatcher中删除它们的委托(即onExit())。然后在主场景返回时重新激活(onEnterTransistionFinished())。

有一半次这很好。但是,其他时候会发生这种情况:

cocos2d: deallocing <CCScheduler: 0x2323a0>

我觉得很奇怪。触摸代表是导致问题的原因是否合理?或者它可能与记忆有关?

2 个答案:

答案 0 :(得分:0)

您是否可以发出[[CCScheduler sharedScheduler] release]?如果是这样,请不要这样做。

CCScheduler是一个单身人士。它永远不应该自行解除分配。

答案 1 :(得分:0)

如果我没记错的话,问题源于尝试向/从TouchDispatcher注册/注销相同的实体两次(即,在我尝试再次注册/取消注册之前,它没有时间注销/注册)。

我通过添加一个小BOOL _didRegisterWithTouchDispatcher来解决它,以避免做类似的事情。