替换场景导致内存泄漏和应用程序崩溃

时间:2014-02-20 06:24:10

标签: ios objective-c memory-management memory-leaks cocos2d-iphone

我正在开发一个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来解决这个问题,但它仍然没有释放内存...... 它只是继续添加每个下一个场景的内存分配,最后崩溃。 任何人都可以帮我解决这个问题吗?

0 个答案:

没有答案