我发现自己对为什么我不能阻止我的触摸处理程序被调用感到困惑:
在 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(处理 || 动画)”的顶部,下一步使程序崩溃。
我不清楚问题可能是什么。
任何帮助表示赞赏。