1

私はそれを知ってallocおりretain、オブジェクトの参照カウントを増やします。実際に参照カウントをインクリメントする他の方法はありますか? そして、いつ/どのようdeallocに呼び出されますか?

4

2 に答える 2

7
  • alloc保持カウント 1 でオブジェクトを割り当てます。
  • で始まるメソッドnewも保持カウント 1 のオブジェクトを返します。
  • retainカウントを 1 増やします。
  • releaseそしてautorelease(実行ループの終わりに)それを1減らします。
  • クラスの名前 (プレフィックスなし) で始まるメソッドは、自動解放されたオブジェクトを返します。つまり、自分で保持しないと、サイクルの最後に解放されます。
  • 最後に、オブジェクトをコピーするメソッド (通常は で始まるcopy) も保持カウント 1 でコピーを作成します。

deallocオブジェクトの保持カウントが 0 になったときに呼び出されます。

PS。まだ知らない場合は、自動参照カウント (ARC)の使用を検討してください。

于 2012-12-26T17:37:28.543 に答える
3

これらを使用すると、保持カウントが増加します。

  1. 新しいですが、alloc+init と見なすことができます。

  2. 保持

  3. copy は、retain count=1 で新しいオブジェクトを作成します

  4. mutableCopy は、retain count=1 で新しいオブジェクトを作成します

dealloc保持カウントが 0 になるとすぐに自動的に呼び出されます。

于 2012-12-26T17:36:16.870 に答える