読者です 読者をやめる 読者になる 読者になる

夏までにiPhone アプリつくってみっか!

趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。

【cocos2d】onExitで[super onExit]を忘れて大ハマり

cocos2d

今日はトホホな1日でした。
何故かというと、ゲームオーバーの処理を実装していたのですが、その途中で意味不明のクラッシュが発生して原因を見つけるのに5時間費やしてしまったからです。
結果としては、単純に、自分が作ったクラスのonExitメソッドのなかで[super onExit]を呼んでいなかっただけなのですが、出てくるエラーログが全く役に立ちません。
今回はこんなのが出ました。

2013-05-12 17:40:50.961 BeeCluster[748:707] *** Assertion failure in -[CCTouchDispatcher forceAddHandler:array:], /Users/CCTouchDispatcher.m:88
2013-05-12 17:40:50.963 BeeCluster[748:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Delegate already added to touch dispatcher.'

これを元にタッチ関係の処理をさんざん調べたのですが、バグは違うところにありました。
このときにさんざん苦労したのですが、すっかり忘れていました。このときはonEnterでしたが。

もう2度とハマりたくないですね。考えすぎて知恵熱が出てきました。