decode中的Xcode retaincount = 1

Sam*_*Dos 2 iphone objective-c

我想知道为什么一个对象的重新计数在它的dealloc函数中等于一个.

-(void) dealloc 
{
   NSlog(@"retain count = %i ", [self retaincount]);
   [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

保留count = 1所以对象如何调用其dealloc函数,尽管它的保留计数等于1.据我所知,当对象的保留计数仅等于零时,该对象会调用此函数.

bbu*_*bum 9

因为对象的保留计数永远不会为零.

将其减少到零是浪费周期,因为无论如何都要对象进行解除分配.retainCount 永远不会返回0.

和:

retainCount没用.别叫它.

谢谢.但我怎样才能调试一个对象的存在?

几种方式;

  • -dealloc中的NSLog()
  • 关于dealloc的断点,打印一些东西,继续
  • 使用僵尸
  • 使用分配工具
  • 使用快照分析