当我将CCSprite(实体)子类化以接收触摸输入时,此问题就开始发生了。当我通过推送到另一个主要场景离开主场景时,我让所有实体从共享的CCTouchDispatcher中删除它们的委托(即onExit())。然后在主场景返回时重新激活(onEnterTransistionFinished())。
有一半次这很好。但是,其他时候会发生这种情况:
cocos2d: deallocing <CCScheduler: 0x2323a0>
我觉得很奇怪。触摸代表是导致问题的原因是否合理?或者它可能与记忆有关?
答案 0 :(得分:0)
您是否可以发出[[CCScheduler sharedScheduler] release]
?如果是这样,请不要这样做。
CCScheduler是一个单身人士。它永远不应该自行解除分配。
答案 1 :(得分:0)
如果我没记错的话,问题源于尝试向/从TouchDispatcher注册/注销相同的实体两次(即,在我尝试再次注册/取消注册之前,它没有时间注销/注册)。
我通过添加一个小BOOL _didRegisterWithTouchDispatcher来解决它,以避免做类似的事情。