親愛なることに、私は約60のビューでナビゲーションベースのアプリを持っている。iPhoneのアプリケーションがメモリ不足でクラッシュするがシミュレータで正常に動作する
私は以下を実行しました: 1.ビルドと分析:bulidは問題なしで成功しました。 2.機器の割り当てとリーク:リークがありません。
しかし、アプリはiPhoneやiPadでクラッシュしましたが、シミュレータで正常に動作します。 クラッシュは約50番目のビューで発生します。 クラッシュレポートはありませんが、crashreporterフォルダにLowMemory.logがあります。
私は誰が間違っている可能性がどのような考えを持っています4.2
に私のiPhoneとiPadをアップグレードしましたか? 私は一週間読んでトラブルシューティングをしています。
すべての返信いただきありがとうございます。
私のアプリにはcontentViewControllerというルートビューがあり、ここから4つのクイズに移動できます。
これはルートビューに戻るためのコードです。ビューをプッシュするための
- (void)goHome {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Warning"
message: @"Proceed?"
delegate: self
cancelButtonTitle:@"Yes"
otherButtonTitles:@"No",nil];
[alert show];
[alert release];
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
[[self navigationController] setNavigationBarHidden:NO animated:YES];
if (buttonIndex == 0) {
NSArray * subviews = [self.view subviews];
[subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
self.view = nil;
if (self.contentViewController == nil)
{
ContentViewController *aViewController = [[ContentViewController alloc]
initWithNibName:@"ContentViewController" bundle:[NSBundle mainBundle]];
self.contentViewController = aViewController;
[aViewController release];
}
[self.navigationController pushViewController:self.contentViewController animated:YES];
}
}
サンプルコード:
-(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];
}
すべての返信いただきありがとうございます。私はあなたのレビューのいくつかのコードを追加しました – Ian
申し訳ありませんが私はダブル投稿したことに気づいた。 http://stackoverflow.com/questions/4281713/iphone-app-crashes-due-to-low-memory-but-works-fine-in-simulator – Ian
私を保存してくれてありがとう、ありがとう。私のアプリは今クラッシュしていないようです! デバッグモードで実行してもデバイスでクラッシュします。 しかし、接続されていると、デバイスでうまく動作します。これは正常ですか? – Ian