web-dev-qa-db-ja.com

「メモリエラーにより終了しました」をデバッグすることはできますか?

アプリが実行されている特定の(一貫した)ポイントで、一貫してxcodeエラーメッセージが表示されます

メモリエラーのため終了しました。

エラーの原因となっているコードを見つけることはできませんが、エラーの近くにあるコードを(ブレークポイントを使用して)知ることができます。

エラーは、の実装で特定のセルを返した直後に発生します

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

UITableViewDataSourceデリゲートメソッド。有効なUITableViewCellを返していることは確認できますが、そのメソッド全体を説明して投稿するのは時間の無駄になると思います。ただし、メモリの急速で大量の割り当てが原因であると考えられます。

それは間違いなくTerminated due to memory errorと言っており、メモリのプレッシャーではありません。

メッセージとはどういう意味かを知りたい。また、このメッセージをデバッグする方法はありますか?クラッシュレポートは生成されません。

ARCおよびiOS 7を使用しています。

73
Santa Claus

このエラーが発生していましたが、何が間違っているのか理解できませんでした。

いくつかの検索の後、私はゾンビを無効にするのを忘れていることがわかりました。

無効にするには、次を実行します。

Select edit scheme

Deselect "Enable Zombie Objects

52
zirinisp

私は同じ問題に直面しました。( "メモリエラーにより終了しました")上記のすべての回答を試しましたが、何もうまくいきませんでした。次に、コードをデバッグして、forループが無限の時間で実行されていることを見つけました。毎回nil値を持つ配列にメモリを割り当てています.300 + MBを使用しているため、このエラーが発生します

ありがとう。

9

私はまったく同じ問題を抱えていました。プログラムでメモリリークが発生したか、メモリが過剰に使用されたと考えられます。私は楽器を使用し、プロファイルとプログラムの割り当てに問題なく使用しました。また、デバイスごとにプログラムを十分に長く実行しましたが、問題なく動作します。

私はiPad 3rd Genをデバッグにも使用していますが、デバイスの速度が遅いかバグがあるために発生している可能性があります.XcodeとXcodeの問題から実行されているようです。メモリリークや割り当ての問題ではありません。

機器を確認し、デバイス自体でアプリを実行して作業する場合

5

OCRにTesseractを使用していましたが、ターゲットテキストがスキャンされると、GIFが再生されるはずでした。 GIFの再生が開始されると、70〜80 MBから450 MBのメモリスパイクが発生しました。問題は、GIFが大量のメモリを消費し、アプリがクラッシュし、Xcodeがそのメッセージを表示することでした。そこで、ViewControllerのスーパービューから該当するimageViewを削除しました。

imageView.removeFromSuperview

この後、アプリはまだ450MBに急上昇しますが、すぐに解放されて40MBになります

4
Yash Tamakuwala

スキームを編集します。[診断]には、割り当てを保護するためのいくつかのオプションがあります。 詳細についてはドキュメントを参照

質問です:それは本当に「メモリエラーのために終了しました」と言って「プレッシャー」ではありませんか?アプリのメモリが不足している場合は、インストゥルメントを確認します。アプリのメモリが不足しているように見える場合は、正確なメッセージが何であるかに関係なく、それに焦点を当てる必要があります。

2
LearnCocos2D

再起動デバイスは私のために働いた。 「メモリエラーにより終了しました」というメッセージが表示されなくなりました。

1
Ofir Malachi