我正在开发一个cocos2d项目,这是一个有很多场景的游戏。 当我调用替换场景时,我使用
[scene2 removeAllChildrenWithCleanup:YES];
在dealloc方法中。 另外,我已经使用
删除了所有未使用的spritesheets NSString *PngName = [atlas.AtlasName stringByAppendingString:@".png"];
NSString *PlistName = [atlas.AtlasName stringByAppendingString:@".plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFramesFromFile:PlistName];
[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrameByName:PngName];
[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames];
当我查看我的
的描述时 [CCSpriteFrameCache sharedSpriteFrameCache]
使用
NSLog(@"%@",[[CCSpriteFrameCache sharedSpriteFrameCache]description]);
,它告诉我它删除了未使用的spritesheets和sprite 但是当我用Instrumets检查设备时,它不会释放内存。这会导致应用程序崩溃。我还删除了每个场景上的触摸代表。我已经处理了每个带有'retain'属性的变量,并在dealloc中释放。 我也尝试使用ARC来解决这个问题,但它仍然没有释放内存...... 它只是继续添加每个下一个场景的内存分配,最后崩溃。 任何人都可以帮我解决这个问题吗?