我正在检查某些对象的保留计数
NSLog(@"r = %d", [aObject retainCount];
似乎我能得到的最低值是“r = 1”,即使我故意添加额外的“释放”调用
[aObject release];
即使我尝试将“release”和“NSLog”测试代码放在对象的 dealloc
方法中,“r = 1”限制仍然有效。
Cocoa 运行时似乎忽略了我在“r = 1”之前的额外版本,然后在示例程序的最后(没有 GC)以“EXC_BAD_ACCESS”崩溃。
我唯一的解释(猜测)是我们需要 r >= 1 才能访问对象。并且 Cocoa 运行时只是试图避免让任何对象的保留计数过早地变为 0。
如果我错了,有人可以确认或纠正我吗?