2012-01-17 3 views
0

私は3つのNSMutableArraysを受け入れるメソッドを持っています.1つはInput、もう1つはポインターへのポインターを使った出力です。私の機能のパラメータを自動解除する必要がありますか?

ここでは、メソッド内に2つの配列を作成しています。

したがって、メモリ割り当てはメソッド内部で行われるため、メモリを解放する方法はメソッドの責任である必要があります。

これらの出力参照にオブジェクトを割り当てる前にオブジェクトでオートリリースを呼び出す必要がありますか?

答えて

1

autoreleaseとすることができます。ただし、メソッド呼び出しの後に、両方の出力ポインタでretainを呼び出すようにしてください。

NSMutableArrays *arr1, arr2, arr3; 
[self methodOne:arr1 two:*arr2 three:*arr3]; 
[arr2 retain]; 
[arr3 retain]; 
+1

なぜですか?あなたがそれらの参照を保持しようとしている場合、あなたの例で 'arr2'と' arr3'を保持する必要があります。現在のメソッド(より適切には、現在の自動解放プールの範囲外)でそれらを使用する予定がない場合は、それらを保持する必要はありません。 – Caleb

+0

ofcourseはautoreleasedされ、メソッド内で作成されるので、arr2とarr3を2つだけ保持します。 最初のものは既に作成され、このメソッドに渡され、他の2つの生成に役立ちます。 –

1

オブジェクトを割り当てるか保持する場合は、オブジェクトを解放または自動リリースする必要があります。それはそれと同じくらい簡単です。

関連する問題