【问题标题】:cocos2D deallocing CCSchedulercocos2D 释放 CCScheduler
【发布时间】:2012-01-18 16:14:30
【问题描述】:

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

有一半的情况下它可以正常工作。但是,其他时候会发生这种情况:

cocos2d: deallocing <CCScheduler: 0x2323a0>

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

【问题讨论】:

    标签: delegates cocos2d-iphone scheduler scene


    【解决方案1】:

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

    CCScheduler 是一个单例。它永远不应该自行释放。

    【讨论】:

    • 抱歉非常迟到的答案,但不是这样。如果我没记错的话,问题源于尝试两次向/从 TouchDispatcher 注册/取消注册相同的实体(即在我再次尝试注册/取消注册之前它没有时间取消注册/注册)。我通过添加一点 BOOL _didRegisterWithTouchdispatcher 来解决它,以避免做类似的事情。谢谢你的回复!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多