私はそれを知ってalloc
おりretain
、オブジェクトの参照カウントを増やします。実際に参照カウントをインクリメントする他の方法はありますか? そして、いつ/どのようdealloc
に呼び出されますか?
2 に答える
7
alloc
保持カウント 1 でオブジェクトを割り当てます。- で始まるメソッド
new
も保持カウント 1 のオブジェクトを返します。 retain
カウントを 1 増やします。release
そしてautorelease
(実行ループの終わりに)それを1減らします。- クラスの名前 (プレフィックスなし) で始まるメソッドは、自動解放されたオブジェクトを返します。つまり、自分で保持しないと、サイクルの最後に解放されます。
- 最後に、オブジェクトをコピーするメソッド (通常は で始まる
copy
) も保持カウント 1 でコピーを作成します。
dealloc
オブジェクトの保持カウントが 0 になったときに呼び出されます。
PS。まだ知らない場合は、自動参照カウント (ARC)の使用を検討してください。
于 2012-12-26T17:37:28.543 に答える
3
これらを使用すると、保持カウントが増加します。
新しいですが、alloc+init と見なすことができます。
保持
copy は、retain count=1 で新しいオブジェクトを作成します
mutableCopy は、retain count=1 で新しいオブジェクトを作成します
dealloc
保持カウントが 0 になるとすぐに自動的に呼び出されます。
于 2012-12-26T17:36:16.870 に答える