1

私のアプリケーションでは、arcgis sdk を使用しました。3 つの異なるマップがあるため、3 つのタイル マップ サービス レイヤーを使用しました。また、地図上で選択した特定の地域のシンボルを表示するグラフィック レイヤーもあります。私のアプリ; 最初に資格情報を使用してサービスを接続し、次にレイヤーをマップ ビューに追加します。これまでのところ問題はありません。すべてのレイヤーをロードした後、いくつかのクエリ操作に AGSQueryTask および AGSIdentify タスクを使用し始めました。ここから問題が始まります。デバッガーから「受信メモリ警告。レベル = 1」と表示されます。引き続きズーム/パン、および追加のクエリ操作を行います。しばらくすると、アプリがクラッシュし、エラーは発生しません。コードを確認し、問題についてググって、arcgis フォーラムを調べましたが、解決策と適切な説明が見つかりませんでした。3 マップではなく 1 マップでアプリを試しましたが、警告とクラッシュは消えませんでした。

結局のところ、私の記憶の問題に対する解決策、説明、または仮定を知っている人はいますか?

PSスタックオーバーフローのおかげで、nszombienabledとguard mallocを使用してコードもデバッグしました:) 私のメモリの問題はこのエラーに関連していますか?

前もって感謝します。

4

1 に答える 1

1

これは、メモリ リークが発生したか、アプリで使用されなくなったメモリが解放されていないように思えます。

これらの問題の原因はどこにでもあり、何にでもある可能性があるため、与えられる一般的な解決策はありません。

あなたができることは次のとおりです。

  1. クラスでメソッドを定義didReceiveMemoryWarningし、そこで使用されていないメモリを解放しようとしていることを確認してください。

  2. Leaks および Memory Allocation プロファイリング ツールでアプリを実行し、レポートされた内容について何ができるかを確認します。

  3. メモリ リークがない場合は、スナップショット分析を使用して放棄されたメモリを見つけてください。

このプロセスで、「: CGBitmapContextInfoCreate: ビットマップ データに .. バイトを割り当てることができません」というメッセージが表示されました。私のメモリの問題はこのエラーに関連していますか?

メモリがいっぱいになると、割り当て呼び出しが失敗する可能性があります...これは、原因というよりは結果です。

于 2012-10-02T09:52:39.590 に答える