我真诚地试图理解我在这里看到的任何远程相关问题的错误。但是,我遇到的问题是当我尝试从我的level1场景转换到levelselector场景时,游戏会因糟糕的访问异常而崩溃。当我在主菜单,积分,水平选择器和所有菜单中使用它们时,菜单和转换工作完美无瑕。 现在我知道错误是在主线程上。 选择器显示它位于
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
现在在我的level1场景中,我确实有三个线程使用[自我安排]并且我已经输入相应的[self unschedule];
我还有一个NSMutableArray,我尝试释放并指向nil,但是我得到了另一个错误。我把它放在场景的dealloc方法中。我也对[self unchedule]做了同样的事情。还有更好的地方吗?
这是它的样子,忘了保留这些东西。发布现在工作正常,但在转换后仍然崩溃。场景加载,因为我可以看到它,但然后它立即崩溃。
[enemies release];
[player release];
[accel release];
[pausedLabel release];
[pausedLayer release];
[health release];
[score release];
enemies = nil;
player = nil;
accel = nil;
pausedLabel = nil;
pausedLayer = nil;
health = nil;
score = nil;
[self unschedule:@selector(updateGameLogic)];
[self unschedule:@selector(throwEnemey)];
[self unschedule:@selector(enemyShoot)];
[super dealloc];
我这次使用[[Class init] alloc] retain]来讨论上面的每个对象