2016-06-23 8 views
0

私は、ほとんどの画面で多くの画面、カスタムビュー、およびAPI呼び出しを持つ1つのアプリケーションに取り組んでいます。場合によっては、ユーザーが長時間アプリを使用すると、Out of Memoryの問題が原因でクラッシュします。 理想的には、アプリ開発中にすべてのガイドラインに従いました.ARCはメモリ使用量を処理します。そのようなメモリの問題を避ける最良の方法は何ですか?iOSでメモリ不足の問題が発生するのを避ける最善の方法は何ですか?

+1

私は非常に効率的に動作する非常に多くの大きなアプリを見てきました。 ARCにあなたのアプリがクラッシュするのを防ぐことはできません。メモリ使用量のためにアプリがクラッシュした場合は、コードに問題があります。クラッシュの詳細を入力し、コードを追加してください。 –

+0

FYI ARCはメモリ使用を考慮しません。 –

+0

よかったです、私はクラッシュレポートを取得し、すぐに提供します。 – Pushkraj

答えて

0

コードが組み込まれているこの問題のお手伝いをすることができ、メモリプロファイラ - のdeallocが呼び出されていない場合は、それを使用する方法についてのチュートリアルのために、これはhttp://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode

それ以外の場合は役に立つかもしれません、それは可能性があり保持サイクルの症状(2つのオブジェクトは互いに強い参照を保持しているため、割り当てが解除されることはありません)。

+0

...これは「弱い参照」の概念によって助長されるかもしれない問題です。この概念は、通常、クリーンアップできる自己参照データ構造を作成するというコンテキストで提示されますが、メモリがあれば(あなたが言っているような)参照を作成したいときにも便利ですきつくなる。 (問題のオブジェクトが収穫されている場合、そのオブジェクトへのポインタは "nil"に設定されますので、これをテストする必要があります)非常に予測不能な競合状態が発生する可能性があります) –

+0

...まだ、 "これはおそらく設計問題です。"アプリケーションに「たくさんの画面がある」場合、これらのすべての画面について、それらのすべてのデータ構造を同時に「生きている」ように保つことはできません(!)。メモリ管理者の行動にあまり依存するのではなく、「すべてのレース条件とそれに付随するデバッグ醜さ」を考慮すると、デザイン(!)問題として自分自身で解決する必要があります。データ構造は明示的に廃棄し、再作成する必要があります。モバイルの世界では、RAMを搭載したSTINGY(!)でなければなりません! –

関連する問題