あまり読んだ後、私はシーンを置き換えるときに何をすべきか理解できないことが分かります。 deallocメソッドで 、私はすべての私のタイマーを解放する必要がありますか?またはcocos2dはそれをしますか?シーンを置き換えるときのタイマーとは?
私は起動時に3つのタイマーがあります。
[self schedule: @selector(contact:)];
[self schedule:@selector(tick:)];
[self schedule: @selector(randomsActions:) interval:0.1];
を私はメニュー(replaceScene)にシーンを交換befor私はこれを行う:
[self unschedule:@selector(randomsActions:)] ; //stop timer
[self unschedule:@selector(contact:)] ; //stop timer
[self unschedule:@selector(contact:)] ; //stop timer
を、それがクラッシュ(私を言って人を見てきました。それらのスケジュールを解除する必要はありません)
だから、私はのdeallocでこれを試してみました:?
それはまた、2回目(クラスでのクラッシュ:CCScheduler.m)クラッシュ[[CCScheduler sharedScheduler] unscheduleAllSelectorsForTarget: self];
私のdeallocで
が、私もこの:(を入れて、私は???する必要がありますか)
削除_contactListener;
[self removeAllChildrenWithCleanup: はい];
削除の世界;
world = NULL;
[super dealloc];
ここで何が起こりますか? シーンを置き換えるときにdeallocで何をすべきかについて誰かに教えてもらえますか? 私はタイマーで何をすべきですか?
ありがとうございました。
私の主な問題は、私はシーンをゲームに戻って、メニューから行くことにしようとしていますときにクラッシュするということでした。 CCScheduler.mクラスの - (void)update:(ccTime)dtメソッドでクラッシュします。何故ですか ?それはタイマーに関係するものですか? – Curnelious
CCSchedulerは、cocos2dの内部メカニズムによっても使用されています。あなたが他の部分で間違ったやり方をしていないことを確認してください。 – max9xs