在iPhone上的Xcode调试器中检查NSObject的引用计数?

时间:2010-06-02 17:41:41

标签: iphone xcode debugging

这应该是如此简单,然而,它正在回避我:当在Xcode / gdb调试器中的断点处停止时,我希望找到从NSObject派生的对象的当前引用计数。我怎样才能做到这一点?我似乎无法找到方法,这让我很生气。

2 个答案:

答案 0 :(得分:3)

更好:转到控制台(命令+ shift + r)并输入:

p(int)[objectName retainCount]

按回车键。你可以在那个控制台上执行你想要的任何语句(它至少是目前的GDB),进行你想要的任何代码调用,它仍然会尝试 - 通常也会成功 - 来得出结果。 'p'是将结果打印为C原语,'po'将结果打印为Objective-C类(即,通过调用'description'就像你对NSLog实例一样)。 'int'就在那里,因为GDB不能总是在运行时确定返回类型,在这种情况下你需要告诉它。

答案 1 :(得分:1)

就像

一样简单
NSLog(@"retainCount:%d", [objectName retainCount]);

其中objectName是您对相关对象命名的内容。

请注意,这不适用于NSStrings,因为它们的管理方式不同。

欲了解更多信息: http://www.karlkraft.com/index.php/2009/04/22/dont-use-non-mutable-objects-to-understand-leak-detection/