对于滚动条,我使用 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)