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. 复制创建保留计数 = 1 的新对象

  4. mutableCopy 使用保留计数=1 创建新对象

dealloc一旦保留计数达到 0,就会自动调用。

于 2012-12-26T17:36:16.870 回答