我知道alloc
并且retain
会增加对象的引用计数。是否有任何其他不同的方法可以实际增加引用计数?何时/如何dealloc
调用?
问问题
319 次
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。
保持
复制创建保留计数 = 1 的新对象
mutableCopy 使用保留计数=1 创建新对象
dealloc
一旦保留计数达到 0,就会自动调用。
于 2012-12-26T17:36:16.870 回答