有没有办法检查NSAutoreleasePool对象?

时间:2011-01-28 08:09:05

标签: objective-c

只是想知道这是否可能,也许我可以检索当前存储在给定NSSet实例中的NSAutoreleasePool个对象?

我查看了Apple的NSAutoreleasePool参考文献,但没有找到与此问题相关的内容。

2 个答案:

答案 0 :(得分:9)

如果目的仅用于调试,则可以使用函数_CFAutoreleasePoolPrintPools()来打印池的内容,如TN2124中所述。从Mac OS X 10.6和iOS开始,它可以从3.x开始。

或者,类方法[NSAutoreleasePool showPools]执行相同的操作。

答案 1 :(得分:2)

不,没有。 NSAutoreleasePool的实施细节是深黑魔法。

你可能会做的是创建自己的自动释放池,并以某种方式欺骗运行时认为它应该使用你的池而不是NSAutoreleasePool。但这只是为了尝试它的快感而这样做。

然而,除了实验和学习之外,你不应该改变自动行为的行为。否则我会找到你。并让你重新编写你的代码。