0

iPod 4G でアプリをしばらくナビゲートすると、このエラーが発生し、画面全体が白くなるか、アプリがハングし、アプリを再起動する必要があります。

**malloc: *** mmap(size=24576) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug**

通常、エラー コード = 12はメモリの問題を意味することはわかってい ますが、アプリに ARC を使用しています。

アプリで複数のボタンを連続してクリックすると、同じエラーが発生します。

この問題についてグーグルで検索しましたが、何も見つかりませんでした。

どんな助けでも大歓迎です。

前もって感謝します。

4

2 に答える 2

0

メモリが不足しているようです。メソッドに単純な NSLog ステートメントを配置し、didReceiveMemoryWarningそれが起動するかどうかを確認します。また、Instruments を実行して、アプリでの過剰なメモリ消費の原因を確認して見つけてください。ARC は便利であり、多くの手作業による介入を回避しますが、メモリが不足しないという保証はありません。

malloc関連のもののデバッグに関してこれを読んでみてください。

于 2013-10-15T07:09:32.820 に答える
0

ARC では、オブジェクトは自動解放プールに入れられる傾向があることに注意してください。そのため、オブジェクトを処理してスコープ外になったり、ポインタが nil になったりしても、オブジェクトは最後までぶらぶらしている可能性があります。ループを実行します。

大量の一時オブジェクトを作成する大きなアクティビティがある場合、メモリがいっぱいになる可能性があります。

@autoreleasepool{ }1 つの解決策は、ブロック内の一時オブジェクトでコードをラップすることです。

もう 1 つの方法は、アクティビティを複数の部分に分割し、それらを実行ループの別々の反復で実行することです。GCD またはperformSelector:after:0ここで役立ちます。

于 2014-07-31T20:51:54.417 に答える