AutoreleasePool PoolManager的疑问

再看cocos代码时发现 PoolManager::getInstance()时 创建了一个AutoreleasePool , 之后没发现还有什么地方要创建AutoreleasePool 这个类的,请问为什么还要用一个PoolManager 来管理着AutoreleasePool ,能不能取消PoolManager?希望理解了的朋友讲解下

你自己可以在栈上建立的AutoreleasePool的,之后的retain/release就会把对象加入到该pool管理,等pool析构后就可以释放它管理的所有对象的。

你可以看到AutoreleasePool的构造函数会把自己加入到PoolManager进行管理的。使用方法可以参考这个测试例子.

你好,我看了这个测试例子用法是可以,但是我为什么要这样用呢?我们做游戏什么情况下会需要用到自己创建AutoreleasePool?

可以提前释放不需要的对象,这样可以减小内存使用峰值。默认的AutoreleasePool要到这一帧结束才会释放。