NSMutableArray以外のARCに関する質問があります。私は、リストビューのすべての要素が含まれているNSMutableArrayの(arr1
)とリストビューを持っているiOS - ARCで混乱し、オブジェクトのNSMutableArrayをクリアする
:
はここケースです。別のスレッドはネイティブコードで実行され、目的関数-c ListViewにコールバックを行います。ネイティブコードは新しいNSMutableArray(arr2
)を作成し、それを私のカスタムクラス(各要素は名前、ID、アイコンなどがあります)の要素で埋めて、それをListViewに渡します。
リストビューでは、最初に[arr1 removeAllObjects]
で配列をクリアしてから、arr2
からarr1
までの各要素を[arr1 addObject: ..]
に追加します。
NOTES:
*すべてのコード、ネイティブとObjective-Cの両方が、オブジェクティブC++コードとしてコンパイルされます。
* allocsとinitのarr2
(およびそのすべての要素)とリストビューのものを呼び出しますが、すべての@autoreleasepool
ディレクティブ
私の質問の下にあることをネイティブコード部と、
ネイティブコードからのメモリリークはありますか?
ListViewコードからのメモリリークはありますか?
[arr1 removeAllObjects]
でリリースした古い要素はメモリリークの原因になりますか?@autoreleasepoolはARCと同じ機能を提供しますか?つまり、オブジェクトを明示的に解放する必要はありませんか?
漏れがあるかどうかを機器でチェックしてみませんか? – larsacus