Cocos2D CCTextureCache保留在内存中

时间:2014-03-05 10:23:44

标签: memory cocos2d-iphone textures cctexturecache cocos2d-iphone-2.x

我使用addImageAsync以异步方式为滚动条加载图像。

我开始分析,看到一些内存问题,图像留在内存中。

然后我决定将addImageAsync与spriteWithFile进行比较,加载并直接卸载图像。 完成所有加载后,addImageAsync正在使用更多内存。

在加载许多图像的循环中,如果我使用

    CCSprite* sprite = [CCSprite spriteWithFile:previewPath];
    NSLog(@"sprite created");
    [[CCTextureCache sharedTextureCache] removeTexture:sprite.texture];
    NSLog(@"texture removed");
    sprite = NULL;
    NSLog(@"sprite nulled");

我的结果是72.4MB

如果我使用:

    [[CCTextureCache sharedTextureCache] addImageAsync:previewPath withBlock:^(CCTexture2D *tex) {
        [[CCTextureCache sharedTextureCache] removeTexture:tex];
        NSLog(@"texture removed");
        [CCTextureCache purgeSharedTextureCache];
    }];

我最终获得108.7MB

这里有问题,还是我做错了什么?

(使用Cocos2d V2)

0 个答案:

没有答案