iPhone应用程序因内存不足而崩溃,但在模拟器中工作正常

iPhone应用程序因内存不足而崩溃,但在模拟器中工作正常,iphone,memory,crash,Iphone,Memory,Crash,亲爱的各位,我有一个基于导航的应用程序,大约有60个视图 我已完成以下工作: 1.构建和分析:bulid是成功的,没有抱怨。 2.仪器配置和泄漏:无泄漏 然而,该应用程序在iPhone或iPad上崩溃,但在模拟器上运行良好。 碰撞发生在第50次左右。 没有崩溃报告,但我确实在crashreporter文件夹中看到LowMemory.log 我已经将我的iphone和ipad升级到4.2 有人知道什么地方可能出错吗? 我已经阅读和排除故障一周了 谢谢你的回复 我的应用程序有一个名为contentV

亲爱的各位,我有一个基于导航的应用程序,大约有60个视图

我已完成以下工作: 1.构建和分析:bulid是成功的,没有抱怨。 2.仪器配置和泄漏:无泄漏

然而,该应用程序在iPhone或iPad上崩溃,但在模拟器上运行良好。 碰撞发生在第50次左右。 没有崩溃报告,但我确实在crashreporter文件夹中看到LowMemory.log

我已经将我的iphone和ipad升级到4.2

有人知道什么地方可能出错吗? 我已经阅读和排除故障一周了

谢谢你的回复

我的应用程序有一个名为contentViewController的根视图,用户可以从这里导航到4个测验

这是我用来返回根视图的代码

- (void)goHome {
UIAlertView *alert = [[UIAlertView alloc]
                      initWithTitle: @"Warning"
                      message: @"Proceed?"
                      delegate: self
                      cancelButtonTitle:@"Yes"
                      otherButtonTitles:@"No",nil];
[alert show];
[alert release];
}

}

推送视图的示例代码:

-(IBAction) buttonArrowClicked:(id)sender {
NSURL *tapSound   = [[NSBundle mainBundle] URLForResource: @"click"
                                            withExtension: @"aif"];

// Store the URL as a CFURLRef instance
self.soundFileURLRef = (CFURLRef) [tapSound retain];

// Create a system sound object representing the sound file.
AudioServicesCreateSystemSoundID (

                                  soundFileURLRef,
                                  &soundFileObject
                                  );
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if (![[defaults stringForKey:@"sound"] isEqualToString:@"NO"]) {
    AudioServicesPlaySystemSound (soundFileObject);
}       

if (self.exercise2ViewController == nil)
{
    Exercise2ViewController *aViewController = [[Exercise2ViewController alloc]
                                                initWithNibName:@"Exercise2ViewController" bundle:[NSBundle mainBundle]];
    self.exercise2ViewController = aViewController;
    [aViewController release];
}
[self.navigationController pushViewController:self.exercise2ViewController animated:YES];   

}

在模拟器下运行时,通常不会遇到内存问题,因此在此平台上不会自动遇到这些错误


然而,模拟器有一个功能,您可以手动触发低内存事件。如果这实际上是设备崩溃的原因,那么您也可能会以这种方式在模拟器中触发相同的错误。

在模拟器下运行时,您通常不会遇到内存问题,因此在该平台上不会自动遇到这些错误


然而,模拟器有一个功能,您可以手动触发低内存事件。如果这实际上是导致设备崩溃的原因,那么也可能是您可以通过这种方式在模拟器中触发相同的错误。

共享一些有关如何推送视图控制器的代码将允许其他人帮助您

通过执行以下操作,可以更轻松地弹出到根视图控制器:

[self.navigationController popToRootViewControllerAnimated:YES];

实际上,您正在共享的代码中推送根视图控制器的新实例。

共享一些有关如何推送视图控制器的代码将允许其他人帮助您

通过执行以下操作,可以更轻松地弹出到根视图控制器:

[self.navigationController popToRootViewControllerAnimated:YES];

实际上,您正在共享的代码中推送根视图控制器的新实例。

感谢所有回复。我已经为你的评论添加了一些代码。我意识到我已经双重发布了。非常感谢你救了我。我的应用程序现在似乎没有崩溃!当我在调试模式下运行时,它仍然会在我的设备中崩溃。但是,当连接时,它在我的设备中运行良好。这正常吗?这可能是另一个问题,比如在按下视图控制器后不释放它。对于每个[self.navigationController推送viewController:viewController动画:是];必须有[视图控制器释放];除非你真的知道你在做什么,否则它会立即出现。对不起,我的意思是它在断开连接的设备中运行良好。请看我上面的示例代码。你的意思是我必须添加[exercise2ViewController版本];最后?当前我的[exercise2ViewController版本];是在dealoc方法中。非常感谢您的耐心。感谢所有回复。我已经为你的评论添加了一些代码。我意识到我已经双重发布了。非常感谢你救了我。我的应用程序现在似乎没有崩溃!当我在调试模式下运行时,它仍然会在我的设备中崩溃。但是,当连接时,它在我的设备中运行良好。这正常吗?这可能是另一个问题,比如在按下视图控制器后不释放它。对于每个[self.navigationController推送viewController:viewController动画:是];必须有[视图控制器释放];除非你真的知道你在做什么,否则它会立即出现。对不起,我的意思是它在断开连接的设备中运行良好。请看我上面的示例代码。你的意思是我必须添加[exercise2ViewController版本];最后?当前我的[exercise2ViewController版本];是在dealoc方法中。非常感谢你的耐心。