Memory management 如何在cocos2d应用程序中释放内存

Memory management 如何在cocos2d应用程序中释放内存,memory-management,cocos2d-iphone,Memory Management,Cocos2d Iphone,我用过 -(void)dealloc{ [[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames]; [[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames]; [[CCTextureCache sharedTextureCache] removeUnusedTextures]; [[CCTextureCache sh

我用过

-(void)dealloc{

   [[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames];
   [[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];
   [[CCTextureCache sharedTextureCache] removeUnusedTextures];
   [[CCTextureCache sharedTextureCache] removeAllTextures];
   [[CCDirector sharedDirector] purgeCachedData];

   [super dealloc];
}

在cocos2d应用程序的每个场景中。但看不到任何内存释放。但它仍然提供了内存警告。我不知道这是不是因为中央图书馆。在这种情况下,释放未使用对象的最合适方法是什么

像这样的暴力手段并不奏效。您将只希望释放您知道不再使用的资源。过度释放内存也会导致额外的加载时间,因为缓存的资源几乎会立即被丢弃并重新加载。这反过来会导致您收到更多的内存警告,因为在cocos2d中加载纹理需要至少两倍的纹理内存(图像数据和从图像数据构建的纹理在加载过程中同时都在内存中)。您“看到”内存释放的过程是什么?这些都是autorelease对象,当runloop循环时,内存最终会释放,因此您无法立即看到效果(例如,在调试过程中)。在清除后立即添加[[CCTextureCache]sharedTextureCache]dumpCachedTextureInfo]。您将得到调用dealloc的确认。