タッチハンドラーの呼び出しを停止できない理由について、私は混乱しています。
DungeonDisplay.m で:
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
if (processing || animating)
return false;
processing = true;
touchPoint = [self locationFromTouch:touch];
[self schedule:@selector(keepMoving) interval:0.01];
[self processTouchAtX:(touchPoint.x/32) AndY:(touchPoint.y/32)];
return false;
}
-(void) processTouchAtX: (int)x AndY: (int)y
{
// if (theDungeon.currentDungeonLevel)
[theDungeon processTouchAtX:x AndY:y];
}
[theDungeon processTouchAtX:x AndY:y] で、DungeonDisplay インスタンスが解放され、DungeonDisplay:Dealloc が正しく呼び出されますが、関数 ccTouchBegan をステップ実行すると、最後の「return false;」の直後です。次の「ステップ」は関数「if (処理 || アニメーション化)」の先頭に戻り、次のステップでプログラムがクラッシュします。
問題が何であるかについては不明です。
どんな助けでも感謝します。