2014-02-27 78 views
0

我有一個Cocos2d遊戲,其中包含3個「世界」之間的加載。要做到這一點的應用程序使用:Cocos2d不釋放內存

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:spriteSheetName]; 

要在加載卸載以前的 '世界' 我這樣做:

[[CCSpriteFrameCache sharedSpriteFrameCache]removeSpriteFramesFromFile:plist]; 
NSString * textureFileName = [plist stringByDeletingPathExtension]; 
CCTexture2D *texture = [[CCTextureCache sharedTextureCache] textureForKey:[textureFileName stringByAppendingPathExtension:@"pvr.ccz"]]; 
[[CCTextureCache sharedTextureCache] removeTexture:texture]; 

當使用dumpCachedTextureInfo我收到: CCTextureCache dumpDebugInfo:36個紋理,爲190476 KB (186.01 MB)

但是,Xcode內存選項卡顯示大約600MB。我正在使用iPad 3進行測試。最後,在一些內存警告後,Xcode顯示:'由於內存壓力而終止'。

有誰知道爲什麼我有不同的記憶值?

+0

您可能有內存泄漏。使用儀器來查找泄漏並運行「分析器」構建,這會向您指出一些潛在(和實際)問題。 – LearnCocos2D

+0

@ LearnCocos2D我已經提出了兩個建議,但是我沒有發現任何泄漏。無論如何感謝提示。 – Jesod

回答

0

確保您在更改場景時也釋放觸摸委託。

+0

我從每個場景/圖層發佈了觸控代理,但沒有任何更改。我正在使用:'[[CCDirector sharedDirector] .touchDispatcher removeDelegate:self];' – Jesod