2012-01-18 47 views
0

當我將CCSprite(實體)分類爲接收觸摸輸入時,此問題開始發生。當我通過推送到另一個主場景時,我讓所有實體從共享的CCTouchDispatcher(即onExit())中刪除其委託。然後在主場景返回時重新激活(onEnterTransistionFinished())。cocos2D釋放CCScheduler

一半的時間,這工作正常。但是,其他時間發生這種情況:

cocos2d: deallocing <CCScheduler: 0x2323a0> 

我覺得這很奇怪。接觸代表是否是問題的原因,這是否合理?或者它可能與記憶有關?

回答

0

如果我沒有記錯,這個問題源於嘗試向TouchDispatcher註冊/註銷同一個實體兩次(也就是在我嘗試註冊/取消註冊之前沒有時間註銷/註冊)。

我解決了它通過添加一個小BOOL _didRegisterWithTouchDispatcher避免做這樣的事情。

0

您是否發佈[[CCScheduler sharedScheduler] release]?如果是這樣,不要這樣做。

CCScheduler是一個單身人士。它不應該自行釋放。

+0

對不起_very_遲到的答案,但不是它。如果我沒有記錯,這個問題源於嘗試向TouchDispatcher註冊/註銷同一實體兩次(即,我沒有時間註銷/註冊,然後再嘗試註冊/註銷)。我通過添加一個BOOL _didRegisterWithTouchdispatcher來解決它,以避免做這樣的事情。謝謝你的回覆! – SeruK 2012-02-02 20:52:25