alloc方法是否递增对象的引用计数

时间:2017-07-18 09:57:47

标签: ios objective-c memory-management alloc retaincount

当我们使用alloc调用Class时,对象的引用计数是否为1。

例如:

NSObject *obj = [NSObject alloc];

执行此行代码后,对象的引用计数为0或1?

我读了alloc源代码,但是没有发现alloc方法对对象的引用计数有任何操作,此时引用计数的对象仍为0?

如果为0,则对象将被销毁,但如果不是0,则如何实现,

我希望有人能帮助我回答困惑的心,谢谢!

1 个答案:

答案 0 :(得分:2)

alloc 创建引用计数为1的对象。它不会以引用计数0创建它并增加引用计数。首先,这将是低效的(对每个对象创建一个额外的保留调用),其次,它不起作用,因为一旦对象的引用计数为0,Objective-C绝对肯定会释放该对象;没有办法停止释放,其中一个副作用是你不能增加或减少零引用计数的对象的引用计数。