我正在开发iOS 5.1的Xcode 4.4上使用故事板,ARC和导航控制器的简单游戏。该应用程序在模拟器上完美工作,但不在设备上(iPhone 4 CDMA)。所以基本上,我有一个主菜单3 UIButtons(玩游戏,选项,帮助)。当我点击Play游戏然后尝试通过导航控制器后退按钮返回菜单时,该应用程序在设备上崩溃。它停在以下螺纹:viewWillDisappear导致应用程序崩溃在设备上,但不是在模拟器上
Thread 1: EXC_BAD_ACCESS (code=1, address=0x70000008)
,并指出以下几点:
0x35b4df78: ldr r3, [r4, #8]
还有一个在我的代码点我打电话的popToRootViewContoller方法。它也在这里崩溃(与我想象的相同的线程错误)。但是,如果我注释掉viewWillDisappear方法,那么我就可以毫无问题地来回切换。选项和帮助屏幕不实现viewWillDisappear方法并在设备上完美地切换。
-(void)viewWillDisappear:(BOOL)animated
{
[tmrCountdown invalidate];
[tmrEclapsedTime invalidate];
[tmrMainEnemyMovement invalidate];
[tmrMoveSpawnedEnemies invalidate];
[tmrSpawnEnemies invalidate];
accInc=currPrefs.accelerometerSensitivity;
enemySpeedX=5.0;
enemySpeedY=5.0;
countdown=4;
ecMiliseconds=0;
randTime=0;
stopped=NO;
gameStarted=NO;
}
我称之为popToRoot方法在这里:
我见的viewWillDisappear方法在下列
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex==0)//cancel
{
//called here
[self.navigationController popToRootViewControllerAnimated:YES];
}
else //1 (Play Again)
{
[self reInit];
}
}
感谢, MEHUL
打开异常断点,看看你能不能找出到底是哪行正在抛出异常 – 2012-08-03 20:33:33
我正在做与丹一样的评论。请参阅添加异常断点:http://developer.apple.com/library/ios/#recipes/xcode_help-breakpoint_navigator/articles/adding_an_exception_breakpoint.html#//apple_ref/doc/uid/TP40010433-CH1-SW1 – Darren 2012-08-03 20:34:31
并启用僵尸检查,你可能会引用一个已经发布的对象 – CSmith 2012-08-03 20:36:48